SceneKit Орбитальные преобразования

Поэтому, начав со SceneKit, все шло хорошо, пока я не наткнулся на преобразования, думая, что это будет похоже на преобразования CA3d * в слоях.

Однако кажется, что я совершенно не прав, и преобразование работает совсем по-другому в отношении того, как работает ось Z.

Например, я пытаюсь выполнить движение в стиле орбиты 3d, похожее на карусель. Этот кусок кода CA3D прекрасно работает для этого:

var trans = CATransform3DIdentity
trans = CATransform3DRotate(trans, deg * (Float(M_PI)/180), 1, 1, 0)
trans = CATransform3DTranslate(trans, 0, 0, 100)
layer.transform = trans

Если применить к нескольким объектам с разными значениями "deg", вы получите красивый круговой вид 3d орбиты.

То же самое с SceneKit дает другой результат:

var trans = SCNMatrix4Identity
trans = SCNMatrix4Rotate(trans,Float(angleTemp*(M_PI/180)), 1, 1, 0)
trans = SCNMatrix4Translate(trans, 0, 0, 100)
node.transform = transform

На самом деле происходит то, что после поворота ось Z-значения изменяется и переводится в зависимости от поворота, примененного в слоях CAT3D +, однако в SceneKit ось Z всегда постоянна, поэтому при перемещении их все перемещается вместе, поэтому вы просто получаете сжатие смотреть.

Итак, я понимаю, что это работает в истинном трехмерном пространстве, но теперь мне кажется, что мне приходится работать со сферической и эллиптической математикой, чтобы сделать то же самое.

Так что кто-нибудь может предложить мне советы, как сделать то, что я пытаюсь сделать? Сейчас я экспериментирую со сферической математикой и использую SCNMatrix4Translate, но пока не совсем правильно понял математику.

Я думаю, что мне нужны формулы для вычисления XYZ для эллипса, я после чего-то очень похоже на это:

http://en.wikipedia.org/wiki/Ellipse#mediaviewer/File:Conicas1.PNG

Такого рода орбита может быть достигнута с помощью фрагмента CAT3D выше на слоях.

Короче говоря, мне нужно получить орбитальный макет, как на картинке выше, и мне нужна помощь с SceneKit и / или геометрией. Весь объект должен вращаться вокруг начала центра, как орбита

Ответы на вопрос(0)

Ваш ответ на вопрос