2009-12-03 34 views
19

He estado realizando operaciones 2D y 3D, incluidos gráficos, durante muchos años y nunca he usado cuaterniones, así que no los siento. Sé que se pueden usar para ciertas operaciones que son difíciles en ángulos de Euler y también que se pueden usar para encontrar la rotación necesaria para que se ajuste mejor a un conjunto de coordenadas (X1, X2 ... XN, X = (xyz)) en otro (X1 ', X2' ... XN ').¿Cuándo debo usar cuaterniones?

¿Hay lugares donde los cuaterniones son esenciales? ¿Y hay lugares donde hacen las soluciones más elegantes o más eficientes?

+0

de Wikipedia: Representaciones de rotaciones por cuaterniones son más compactos y más rápido de calcular que las representaciones de matrices. – dnagirl

+0

Para aquellos que también buscan un enlace para hacer clic en: http://en.wikipedia.org/wiki/Quaternion –

Respuesta

17

Tienen una huella de memoria menor que las matrices de rotación y son más eficientes que las representaciones de matriz y ángulo/eje.

También:

  • Es extremadamente fácil para interpolar entre dos cuaterniones, que es útil para movimientos de cámara lisas etc.
  • unidad de normalización de los cuaterniones punto flotante sufre de un menor número de defectos de redondeo que representaciones matriciales.
1

La ventaja de cuaterniones más de matrices no sólo es más rápido de cálculo, pero sobre todo porque una representación matricial de rotaciones sucesivas alrededor de ángulos arbitrarios finalmente ceder a errores de redondeo de punto flotante terribles y ya no representan, rotaciones adecuadas afines . "Restaurar" una matriz de rotación es computacionalmente más costoso que normalizar un cuaternión. Por lo tanto, los cuaterniones se deben elegir sobre matrices de rotación puras.

+0

Quaternions en realidad requieren un poco más de aritmética, y los sucesivos quats acumularán errores de redondeo tanto como las matrices. Su ventaja no es la redundancia que se encuentra en las matrices ortogonales. – DarenW

+1

@DarenW Mientras que las multiplicaciones exitosas de cuaterniones recibirán errores, la diferencia es que renormalizarlos requiere un punto-producto y una raíz sqaure. Orthonormalizing una matriz es una tarea mucho más compleja. –

3

Con los cuaterniones también se soluciona el problema del bloqueo cardánico. Y es más fácil trabajar con ellos cuando desee realizar rotaciones arbitrarias.

+2

El bloqueo cardánico es solo una propiedad de los ángulos de Euler. Independiente de la representación de la rotación. – Calmarius

3

cuaterniones tienen muchas ventajas sobre los ángulos de Euler y son a menudo preferible para las rotaciones 3D:

  • más fácil (y bien definido) interpolación entre los cuaterniones (o: orientaciones): el movimiento resultante tiene velocidad angular constante alrededor de una un solo eje, que a menudo es estéticamente más agradable. Este proceso se llama "slerp" y es crítico para la combinación de animación/rotación. Además, la interpolación de cuaternión no sufre bloqueos de cardán.
  • Son fáciles de renormalizar.

Desventajas:

  • La principal desventaja es que requieren un poco más de matemáticas y son menos intuitivo que los ángulos de Euler cardánica /.
  • En comparación con las matrices de transformación afines, los Quaternions solo contienen una rotación, y ninguna conversión y escalado.
0

En comparación con los ángulos de Euler, son más fáciles de componer y evitan el problema del bloqueo de cardán.

En comparación con las matrices de rotación, son más numéricamente estables y la representación (4 números) es más compacta.

2

Pros de cuaterniones

  1. Fast multiplicación
  2. rápida a/de conversión matriz
  3. Evitar adicional (de cálculo) de ruido (escala, de corte), y representan rotación pura
  4. interpolación simple rotación En el caso personalizado para la animación en tiempo real se puede utilizar la interpolación lineal.
  5. Algunas operaciones delicadas disponibles, la integración rápida rotación, torsión descomposiciones oscilación

Cons.

  1. La transformación del vector no es tan rápida como con la matriz de 3x3.
  2. contiene 4 escalar, pero la representación rotación compacto puede utilizar solamente 3.
Cuestiones relacionadas