2014-10-12 2 views
0

При указании вращения для объекта, вы делаете что-то вроде этого:Не клеится, как вращение свойство работает в SceneKit

_earthNode.rotation = SCNVector4Make(1, 0, 0, M_PI/2); 

То, что я не получаю, как определить удельное вращение для каждой оси? Потому что скажем, что я хотел повернуть мой узел из PI на x, PI/2 на y и PI/4 на z, как бы я это сделал? Я думал, что я мог бы сделать что-то вроде этого:

_earthNode.rotation = SCNVector4Make(1, 0.5, 0.25, M_PI); 

Но это ничего не меняет ....
Как это работает свойство?

ответ

3

Вектор вращения в наборе сцен указан как ось вращения (первые 3 компонента), следуя углу (4-й компонент), называемому axis-angle representation.

enter image description here

Формат Вы пытаетесь указать (различные углы вдоль каждой оси) называется Euler angles (если я не помня неправильно).


Перевод между двумя представлениями - это всего лишь тригонометрия. Быстрый онлайн-поиск «углов Эйлера к углу оси» приводит к this page, который показывает, кто это сделает на Java.

2

SCNNode имеет eulerAngles свойство, которое позволяет Вам делать только что

+0

Ах, некоторые новые 10.10 дополнения. Ницца! –

 Смежные вопросы

  • Нет связанных вопросов^_^