Transformações Orbitais SceneKit

Então, tendo começado com o SceneKit, tudo correu bem até agora, quando me deparei com transformações, pensando que seriam como transformações CA3d * em camadas.

No entanto, parece que estou errado e a transformação funciona de maneira bastante diferente no que diz respeito ao funcionamento do eixo Z.

Por exemplo, estou tentando realizar um movimento de estilo orbital 3d, semelhante a uma aparência de carrossel. Este trecho de código CA3D funciona de maneira brilhante para fazer isso:

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

Se aplicado a vários objetos com diferentes valores "deg", você obtém uma boa aparência circular da órbita 3D.

O mesmo com o SceneKit produz resultados diferentes:

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

O que acontece realmente é que, após a rotação, o eixo do valor Z muda e é traduzido com base na rotação aplicada nas camadas CAT3D +; no entanto, no SceneKit, o eixo Z é sempre constante, de modo que a translação apenas os mova todos juntos, para que você seja esmagado. Veja.

Então, eu entendo que isso está funcionando no verdadeiro espaço 3D, mas agora parece que estou tendo que trabalhar com a matemática Sphereical e Ellipse para fazer o mesmo.

Para que alguém possa me oferecer dicas de como fazer o que estou tentando fazer? Agora estou experimentando matemática esférica e usando SCNMatrix4Translate, mas ainda não entendi direito a matemática.

Eu acho que o que eu preciso é de fórmulas para calcular xyz para uma elipse, estou atrás de algo muito semelhante a isso:

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

Esse tipo de órbita pode ser alcançado usando o snippet CAT3D acima nas camadas.

Para encurtar a história, preciso obter um layout orbital como a figura acima e precisar de ajuda com SceneKit e / ou matemática de geometria. Todo o objeto deve girar em torno de uma origem central como uma órbita

questionAnswers(0)

yourAnswerToTheQuestion