¿Qué es el ‘Quaternion’ y su ‘Lerp’ en Unity y qué hace?

Un cuaternión es una forma de representar una rotación. Al principio es un poco difícil entenderlo, en comparación con la versión habitual de rotaciones XYZ Euler, pero tiene algunas ventajas importantes.

La familiar rotación XYZ Euler es fácil de entender: es solo una serie de rotaciones unidimensionales en serie. Pero, debido a que están en serie, cada número cambia el significado de lo que viene después: una rotación de Euler de (0, 45, 0) se rota claramente 45 grados en Y: pero un Euler de (90,45,0) es en realidad girado 45 grados en Z. Esto significa que Eulers son vulnerables al bloqueo de cardán y la mezcla entre diferentes rotaciones de Euler es a menudo muy tambaleante e impredecible:

Los cuaterniones son una forma diferente de representar rotaciones. Son un poco más difíciles de visualizar, pero puedes imaginar los primeros 3 números como vectores y el cuarto número como rotación (hay mucho más en juego, piensa en esto como una versión de cuento de hadas).

Afortunadamente, en Unity puedes convertir rotaciones hacia y desde cuaterniones usando Quaternion.Euler (x, y, z) para hacer un cuaternión desde ángulos legibles por humanos y el método .eulerAngles () de un cuaternión para recuperar los ángulos de Euler.

Quaternion.lerp () y Quaternion.slerp () son dos formas de interpolar entre cuaterniones. Si las dos rotaciones son bastante similares, son visualmente idénticas. Si los dos cuaterniones están muy separados (para mí, lo veo después de unos 80 grados), el método slerp () proporciona una interpolación más suave y predecible. lerp () es menos preciso pero más barato de calcular.

Gracias por A2A.

Estoy totalmente de acuerdo con la respuesta de Steve Theodore.

Lo único que agregaré es que las rotaciones de Euler no son directas entre 2 puntos, mientras que los cuaterniones son rotaciones directas a través del ángulo más corto.

Y el Lerp / Slerp son métodos de interpolación para determinar las ubicaciones intermedias entre los 2 puntos de parada.

La idea de Gimbal lock es que las rotaciones parciales pueden llevarte a una posición en la que no tienes libertad de movimiento en algún eje. Los cuaterniones evitan esto al girar solo alrededor de un solo eje.

No estoy familiarizado con el motor de Unity, pero la mayoría de las representaciones del uso de Quaternion se adhieren a Unit Quaternions, que solo manejan rotaciones como ST dijo, pero los quaternions que no son de unidad también pueden escalar.

Como resultado, los cuaterniones pueden manejar todas las operaciones que las matrices pueden, con la excepción de la traducción (mover el origen de un objeto).

Los cuaterniones tienen dos formas idénticas.

(w, x, y, z) es equivalente a (-w, -x, -y – z)

En ambas formas, los valores x, y y z representan el eje de rotación. El valor w es un valor codificado que con los algoritmos de rotación determina qué tan lejos (desplazamiento angular) gira algo, con el signo positivo / negativo determinando la dirección.

En términos de matemáticas, Quaternion es un número complejo en 3 dimensiones.
w + x i + y j + z k,

donde i, j, k son números imaginarios y w, x, y, z son números reales.

More Interesting

¿Es legal pedir esporas de Psilocybe en línea a la India?

¿Es esto matemáticamente válido: si solo haces 1% al día más que los demás, entonces harás 3800% más que todos en un año?

Sabemos que los números no tienen fin, lo que todos conocemos como infinito. Pero si es cierto, entonces no deberíamos poder llegar a 2 si comenzamos desde 1 (si también estamos considerando decimales). ¿Por qué suponemos que llegará a 2?

¿Por qué el método Rho de Pollard no es rápido?

¿Qué símbolo matemático es equivalente a la palabra inglesa "is"?

¿Cómo se resolvió la paradoja de Russell?

Cómo demostrar [matemáticas] e ^ {i \ pi} = - 1 [/ matemáticas] algebraicamente

¿Cuál es el mejor canal de YouTube para matemáticas IIT JEE?

Cómo probar reglas en lógica con ejemplos de la vida real de dos proposiciones

Si 1000 personas se disparan entre sí a partir del # 1, él dispara al # 2 y pasa el arma al # 3. Luego, # 3 dispara # 4, pasa el arma al # 5 y así siguen varias rondas de disparo. ¿Quién será el único sobreviviente al final?

Si [matemáticas] a + b + c = 1 [/ matemáticas], [matemáticas] a ^ 2 + b ^ 2 + c ^ 2 = 2 [/ matemáticas], [matemáticas] a ^ 3 + b ^ 3 + c ^ 3 = 3 [/ matemática], ¿cómo encontrarías [matemática] a ^ {- 1} + b ^ {- 1} + c ^ {- 1} [/ matemática]?

Cómo verificar la convergencia [math] \ sum \ limits_ {n = 1} ^ {\ infty} \ sin (\ sqrt {n ^ 3 + 1} - \ sqrt {n ^ 3}) [/ math]

¿Cuál es la mejor manera de aprender matemáticas superiores?

¿Cuál es la relación óptima entre bola de billar y tamaño de bolsillo para que sea más fácil hacer macetas?

¿Qué es una explicación intuitiva de un grupo fundamental?