2017-10-11 3 views
0

Also,ARKit: Platziere SCNNode (Ebenengeometrie) an einer bestimmten Position, gegenüber SCNCamera, aber mit einem Winkelversatz um Y?

Ich habe die genaue Position, an der ich den Knoten platzieren möchte. Wenn ich die Dinge mit einer Kugelgeometrie testen kann ich Sphären in der Welt platzieren, indem Sie sagen, den Knoten:

node.simdPosition = Position

(I bieten die „Position“ als Eingabe für die Funktion).

Das platziert das Objekt erfolgreich in der Welt genau wo ich es hin möchte.

Was ich wirklich tun möchte, ist, indem ein Flugzeug:

 let plane = SCNPlane(width: 0.2, height: 0.3) 
     plane.cornerRadius = plane.width/10 
     plane.firstMaterial?.diffuse.contents = UIColor.red 
     plane.firstMaterial?.specular.contents = UIColor.white 
     let node = SCNNode(geometry: plane) 

Dann erzählt er in der „Position“ gebracht werden:

node.simdPosition = position 

All das funktioniert mit dem Flugzeug als auch. Was ich Probleme habe, ist der Winkel:

Ich möchte sagen, dass der Knoten des Flugzeugs mit einem gegebenen "Winkel" (um Y) versetzt zur Kamera platziert werden soll. Ich habe versucht, diese aber es funktioniert nicht:

node.rotation = SCNVector4Make(0, 1, 0, currentFrame.camera.eulerAngles.z - angle) 

Also, die Frage ist, wie kann ein Knoten an einer bestimmten Stelle platziert werden und im Moment ist es in die Welt gesetzt wird, haben auch einen gewissen Y Winkelversatz von der Senkrechten zur Kamera?

+0

das hat funktioniert: node.eulerAngles = SCNVector3Make (0, cameraEulerAngles.y - Float (0.7), 0) – zumzum

Antwort

0

ich den falschen Euler-Winkel wurde mit ... (z)

Dies machte es:

node.eulerAngles = SCNVector3Make (0, cameraEulerAngles.y - Float (0,7), 0)

Verwandte Themen