graphics - matricial - quaternion
Vectores de rotación frente a cuaterniones (2)
Un vector de rotación representa las rotaciones al almacenar directamente el eje de rotación y la magnitud del ángulo.
Los cuaterniones parecen usarse mucho más para representar rotaciones. ¿Por qué se prefieren los cuaterniones a los vectores de rotación en gráficos de computadora?
Los cuaterniones son mucho más fáciles de calcular, por supuesto para la computadora (como ser humano, no deberías molestarte con las rotaciones 3D de todos modos):
¿Qué haces cuando quieres concatenar dos rotaciones en la representación vectorial? Tienes que convertirlos a cuaternión o forma de matriz (usando trigonometría costosa) para hacer eso (y tal vez de nuevo), mientras que los cuaterniones se pueden concatenar de manera eficiente mediante el uso de la multiplicación de cuaternión clásica.
¿Qué haces cuando quieres rotar un punto / vector usando una rotación en formato vectorial, o enviarlo a GL / D3D como matriz? Usted lo convierte en una matriz (otra vez usando costosos trigonometría). Por otro lado, un cuaternión se convierte de manera bastante eficiente en una matriz, ya que codifica los senos y cosenos necesarios.
Entonces, las matrices y los cuaterniones son representaciones rotacionales mucho más apropiadas. De esos dos cuaterniones son más compactos y también son bastante fáciles de convertir en una representación de ángulo de eje (y viceversa), aunque usando trigonometría. Entonces, si necesita información del ángulo del eje en los periféricos (solo nosotros, los humanos, a veces necesitamos un ángulo y eje de rotación real, la computadora realmente no le importa) todavía puede usarlo, pero para la representación interna y el cálculo, los cuaterniones o matrices son una opción mucho mejor.
Si los cuaterniones parecen un poco pesados al principio con su explicación del "número complejo tridimensional" , no se moleste con sus fundamentos matemáticos exactos. Simplemente comience a entender cómo funcionan y cómo usarlos. Pragmáticamente son solo un tipo de representación de ángulo de eje, pero con senos y cosenos codificados implícitamente, que son necesarios para una transformación y cálculo eficientes.
Para una buena explicación de las posibles razones por las que se usan los quaterions y, a veces, se prefieren los vectores, consulte este artículo muy interesante . En este extenso pero perspicaz hilo encontrarán opiniones opuestas sobre la utilidad de los cuaterniones.
TL; DR: la opinión del autor es que, en realidad, no necesitamos quaterions, pero debido a su naturaleza intrincada y compleja, parecen ser muy atractivos para los programadores. Todas las operaciones expulsadas usando cuaterniones se pueden expresar usando vectores. Esta opinión es bastante controvertida.