Estou tentando fazer uma simulação simplificada de helicóptero (no momento, é um cubo) em 3D e estou tendo alguns problemas com a rotação. Um helicóptero pode girar ao longo dos três eixos:
- gire sobre si mesmo usando a hélice traseira: rotação do eixo y
- incline para a esquerda e direita para ir para a esquerda ou direita: rotação do eixo z
- incline para cima e para baixo para recuar ou avançar: rotação do eixo x
Eu preciso ser capaz de controlar cada eixo individualmente. Até agora, tentei usar ângulos de Euler, mas, independentemente da ordem de rotação que uso, encontro uma trava de cardan ou alguns eixos "trocam de lugar".
Parece que preciso usar quaternions, mas não sei como controlar cada eixo individual, pois os quaternions usam uma direção e um ângulo. Devo criar três quaternions e multiplicá-los juntos? Eu não acabaria com os mesmos problemas?
O mais estranho é que, se eu usar meu dedo para representar os três eixos do meu helicóptero (polegar para cima = y, índice = z, meio = x), não pareço encontrar esses problemas. Por quê?