2016-12-12 10 views
1

Я пытаюсь разработать роботизированную систему отслеживания рук. Я использовал сцену для разработки визуализации и управления системой. SCNNodes моей системы:Scenekit: Угол между двумя SCNNode

Плечо ---> Верхний_арм ---> Форекс ---> Пальма.

теперь я мог повернуть каждый узел с помощью rotation property of each SCNNode.

И сейчас я заинтересован в том, есть любое существующее API для compute the angle between two SCNNode, когда система находится в движении, например. угол между Upper_arm и Fore_arm?

+2

Я не понимаю, почему вы должны вычислить его. Локальное преобразование каждого узла определяется относительно его родителя. Если родителем узла предплечья является узел верхнего плеча (он должен быть), вы можете просто прочитать вращение на любой интересующей вас оси. –

+0

@KarlSigiscar Вы правы! Спасибо за подробное объяснение. Это дало мне больше понимания механизма. Еще раз спасибо. –

ответ

0

Попробуйте SCNNode.eulerAngles, вы получите SCNVector3, который имеет компоненты:

  • Pitch (х компонент) является вращение вокруг узла оси х.
  • Yaw (y-компонент) - это поворот вокруг оси y узла.
  • Рулон (компонент z) - это вращение вокруг оси z узла.

Fore_arm.eulerAngles даст вам углы поворота относительно Upper_arm