stringtranslate.com

Discusión:Cuaterniones y rotación espacial

En comparación con las matrices de rotación

El artículo dice

"En comparación con las matrices de rotación, son más compactas, numéricamente más estables y más eficientes"

Sin embargo, la rotación de cuaterniones requiere 24 operaciones de suma/multitud, mientras que una matriz de 3x3 requiere solo 15 operaciones de suma/multitud. Además, la afirmación de que es "numéricamente más estable" no está justificada y no puedo encontrar una referencia. — Comentario anterior sin firmar agregado por 80.47.47.163 (discusión) 15:22 19 may 2020 (UTC) [ responder ]

No estoy seguro de dónde provienen esos números. En cuanto a la cantidad de operaciones, los cuaterniones requieren menos operaciones para componer rotaciones y más operaciones para aplicar una rotación a un vector. Lo que resulte más eficiente depende de la aplicación.
Además, la eficiencia no depende únicamente del número de multiplicaciones y adiciones. Los cuaterniones ocupan menos de la mitad de la memoria y, en consecuencia, del ancho de banda, lo que, una vez más, es importante en algunas aplicaciones (por ejemplo, los cálculos del espacio tangente en una GPU).
La aplicación y composición de rotaciones no son las únicas operaciones que se deben considerar. Los cuaterniones son más fáciles de interpolar (de nuevo, son útiles para los cálculos del espacio tangente en una GPU, por ejemplo, pero también para la animación, el modelado, etc.).
"más estable numéricamente" - esto es indudablemente cierto. Al componer rotaciones repetidamente (por ejemplo, en simulaciones de cuerpos rígidos), las matrices de rotación inevitablemente se volverán no ortogonales. Hay diferentes formas de reortogonalizarlas, sacrificando precisión y rendimiento. A diferencia de ellas, los cuaterniones no sufren ese problema en absoluto. bungalo ( discusión ) 20:09, 19 de mayo de 2020 (UTC) [ responder ]

Etiquetado de las fórmulas en la sección Convención alternativa

El párrafo argumentó que se desaconseja el uso de la convención de Shuster, al igual que el artículo citado "Por qué y cómo evitar la multiplicación de cuaterniones invertidos" de Sommer et. al. Pero las fórmulas en el párrafo no se distinguen claramente (excepto por los signos menos rojos). Estas fórmulas están empezando a aparecer en Google Images fuera de contexto, lo que genera mucha confusión entre los estudiantes. Intenté agregar la etiqueta "\qquad \text{Convención alternativa, se desaconseja su uso}" a la derecha de las fórmulas, pero un bot antivandálico revirtió la edición. Si alguien (especialmente los usuarios registrados) está de acuerdo, por favor ayude con la edición. 184.147.40.19 ( discusión ) 04:04, 25 de enero de 2022 (UTC) [ responder ]

Ya revertí la edición del bot hace unos minutos. [1] Solo asentiré y fingiré que sabía con certeza que no era vandalismo. Saludos. firmado , Willondon ( discusión ) 04:14, 25 de enero de 2022 (UTC) [ responder ]

Recuperar ángulo del eje

Dado que los cuaterniones son rotaciones sobre un eje arbitrario, tiene sentido, por convención, que el ángulo sea siempre un número no negativo. Además, el ángulo debe estar siempre en el primer y segundo cuadrante, ya que todos los demás cuadrantes tienen ángulos negativos equivalentes. Si, por ejemplo, queremos representar una rotación de alrededor del eje, esto es completamente equivalente a una rotación de alrededor del eje.

De hecho, la fórmula para recuperar el ángulo de rotación presentada producirá la respuesta correcta en el primer y segundo cuadrante porque el primer argumento siempre será positivo, pero es innecesariamente complicado. Propongo que para recuperar el ángulo simplemente usemos

lo que también produce resultados en el 1er y 2do cuadrante, Una vez recuperado el ángulo, entonces el eje es simplemente la parte vectorial dividida por el seno del medio ángulo.

— Comentario anterior sin firmar añadido por Jalexiou ( discusióncontribs ) 16:26 11 jun 2022 (UTC) [ responder ]

rotaciones y matrices

Un hecho geométrico independiente de los cuaterniones es la existencia de una función dos a uno de las rotaciones físicas a las matrices de transformación rotacional.

¿No debería ser al revés? Es decir, una rotación tiene dos representaciones, no que una matriz pueda representar dos rotaciones. — Tamfang ( discusión ) 05:41 2 ago 2023 (UTC) [ responder ]

¿orden xyzw?

Creo que cuando se escriben como cuatro números, es relativamente común escribirlos con el término coseno al final, es decir, es un vector de 3 que contiene el eje multiplicado por sen/2, seguido de cos/2. Esto alinea el vector con vectores de 3 espacios escritos en coordenadas homogéneas, lo que lo hace muy popular en el código que ya tiene que lidiar con ellos. ¿Alguien sabe si existe alguna convención real para hacerlo de esta manera y/o la forma que se muestra en el artículo con el término cos primero? Spitzak ( discusión ) 17:55, 8 de octubre de 2024 (UTC) [ responder ]

En muchos contextos, los cuaterniones se escriben como la suma de cuatro partes en un orden específico: la parte real, la parte i, la parte j y la parte k. Esa forma se traslada a tener el coseno primero, y es con la que estoy más familiarizado. Si lo has visto de otra manera... entonces hay (al menos) dos formas de hacerlo. Si esto es una votación, voto por tener el término cos primero. — Q uantling  ( discusión  |  contribuciones ) 18:19, 8 de octubre de 2024 (UTC) [ responder ]
No estoy sugiriendo que se cambie, solo me pregunto si debería anotarse en caso de que alguien esté mirando un código que funcione de esa manera. Al observar algunos códigos existentes, como la biblioteca matemática de Pixar, parece que son bastante cuidadosos al hacer que la API devuelva las partes reales y vectoriales como dos piezas diferentes, y la indexación solo funciona en el vector (es decir, escribe quat.vector[2] para obtener la z, no quat[3] o quat[2]). Sin embargo, creo que existen algunas pequeñas ventajas en las GPU para almacenar los cuaterniones como xyzw, por lo que esto se hace a menudo. Spitzak ( discusión ) 23:56, 8 de octubre de 2024 (UTC) [ responder ]
Si observamos el `GfQuatd` de Pixar, parece que se dispone la memoria como dije, pero definitivamente lo ocultan en la API. Hay un constructor de 4 números, pero primero tiene la parte real y luego el vector imaginario. En la parte privada de la estructura de datos almacenan 4 dobles y ponen la parte real al final; esto puede haberse hecho para que la memoria pueda enviarse a la GPU. Algunas otras bibliotecas que miré parecen almacenar primero la parte real. Spitzak ( discusión ) 00:08, 9 de octubre de 2024 (UTC) [ responder ]