2016-07-22 5 views
0

iOSで長い時間を過ごした後も、3D体験はできませんでした。回転できる1つの立方体を作成する必要があります。画像からの立方体構造と回転

イメージからキューブを作成し、それを迅速に回転させる方法を理解しようとしています。

このリンクhttps://www.raywenderlich.com/12667/how-to-rotate-a-3d-object-using-touches-with-openglは、それを正確にしましたが、迅速ではありません。

彼の他のチュートリアルは、スウィフトの方がずっと複雑です。

  1. が特定のx、yにそれを回転させた画像から3Dキューブ、Z

を作成する簡単なAppleの3Dアニメーションがあります:

私は2つの機能を持って探していますそのクラスに?

+0

"from image"? ... – tktsubota

+0

@tktsubotaのように、その側面の1つとして。正確にリンクで行われたように。 – Curnelious

+0

あなたはSceneKitを試しましたか? – tktsubota

答えて

0
import UIKit 
import SceneKit 
import QuartzCore 

class ViewController: UIViewController { 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let scene = SCNScene() 
    let scnView = self.view as! SCNView 
    scnView.scene = scene 

    let cameraNode = SCNNode() 
    cameraNode.camera = SCNCamera() 
    scene.rootNode.addChildNode(cameraNode) 
    cameraNode.position = SCNVector3(x: 0, y: 0, z: 15) //where will be situated a cube 

    scnView.allowsCameraControl = true  //that's for you can spin it any direction with your finger if you are bored 
    scnView.autoenablesDefaultLighting = true //Lightting 

    var geometries = [ 
     SCNBox(width: 4.0, height: 4.0, length: 4.0, chamferRadius: 0), 
    ] //This is the cube with parameters of 4 

    var materials = [SCNMaterial]() 
    for i in 1...6 { 
     let material = SCNMaterial() 
     if i == 1 { material.diffuse.contents = UIImage (named: "qr.png") } 
     if i == 2 { material.diffuse.contents = UIColor(red: 0.6784, green: 0.698, blue: 0.7412, alpha: 1.0) } 
     if i == 3 { material.diffuse.contents = UIColor(red: 0.6784, green: 0.698, blue: 0.7412, alpha: 1.0) } 
     if i == 4 { material.diffuse.contents = UIColor(red: 0.6784, green: 0.698, blue: 0.7412, alpha: 1.0) } 
     if i == 5 { material.diffuse.contents = UIColor(red: 0.6784, green: 0.698, blue: 0.7412, alpha: 1.0) } 
     if i == 6 { material.diffuse.contents = UIColor(red: 0.7882, green: 0.7961, blue: 0.8863, alpha: 1.0) } 
     materials.append(material) 
    } //this is to coloring each side of cube 

    for i in 0..<geometries.count { 
     let geometry = geometries[i] 
     let node = SCNNode(geometry: geometry) 

     node.geometry?.materials = materials 
     node.runAction(SCNAction.repeatForever(SCNAction.rotateBy(x: 1, y: 1, z: 1, duration: 5))) 
     scene.rootNode.addChildNode(node) 
    } 
} 
+1

説明を入力し、答えがうまくいかないかを具体的に説明してください。 – UmarZaii

関連する問題