2016-12-12 6 views
1

Ich versuche, ein Roboterarm-Tracking-System zu entwickeln. Ich habe Scenekit verwendet, um die Visualisierung und die Steuerung des Systems zu entwickeln. Die SCNNodes meines Systems ist:Scenekit: Winkel zwischen zwei SCNNode

Schulter ---> Upper_arm ---> Fore_arm ---> Palm.

Ich könnte jetzt jeden Knoten mit dem rotation property of each SCNNode.

drehen Und ich bin jetzt daran interessiert, ob es irgendein bestehende API compute the angle between two SCNNode, wenn das System bewegt, zum Beispiel. der Winkel zwischen Upper_arm und Fore_arm?

+2

Ich sehe nicht, warum Sie es berechnen würden. Die lokale Transformation jedes Knotens wird relativ zu seinem übergeordneten Element definiert. Wenn der Elternknoten des Unterarmknotens der Oberarmknoten ist (was er sein sollte), dann können Sie einfach die Rotation auf jeder Achse lesen, an der Sie interessiert sind. –

+0

@KarlSigiscar Sie haben Recht! Danke für die ausführliche Erklärung. Es gab mir mehr Verständnis für den Mechanismus. Danke noch einmal. –

Antwort

0

Versuchen SCNNode.eulerAngles, werden Sie SCNVector3 erhalten, welche Komponenten hat:

  • Pitch (die x-Komponente) ist die Rotation um die x-Achse des Knotens.
  • Yaw (die y-Komponente) ist die Drehung um die y-Achse des Knotens.
  • Roll (die z-Komponente) ist die Drehung um die z-Achse des Knotens.

Fore_arm.eulerAngles geben Sie Winkel eine Drehung relativ zu Upper_arm

Verwandte Themen