Tengo un par de vectores. ¿Cómo puedo crear un cuaternión que gire de uno a otro?Obteniendo quaternion para rotar entre dos vectores
Respuesta
un cuaternión unidad q = cos (F) + u * sin (F) representa la rotación del vector v por el ángulo 2 * F alrededor del eje u.
Si los vectores son v y w, entonces deberíamos normalizarlos, a continuación, calcular el ángulo entre ellos como 2 * F = ArcCos (DOT (v , w)). Vector de dirección del eje de rotación u = Normalizar (VectorProduct (v, w)). Ahora podemos construir el cuaternión de rotación requerido.
También podría ser una buena idea normalizar el eje de rotación ** u ** después de haber sido calculado para sostener un cuaternión de la unidad, ya que el producto cruzado de dos vectores unitarios solo está normalizado para los vectores de entrada ortogonales. –
@Christian Rau Tienes razón, me he perdido esta normalización. Adicional. – MBo
Tenga en cuenta que el caso v = -w necesita un manejo especial. –
- 1. ¿Ángulo entre dos vectores 2d, diferencia entre dos métodos?
- 2. codeigniter: Obteniendo datos publicados entre dos fechas
- 3. Obteniendo la diferencia entre dos repositorios
- 4. Comparar dos vectores C++
- 5. "mover" dos vectores juntos
- 6. C++: Comparando dos vectores
- 7. Calcular la distancia entre dos vectores de diferente longitud
- 8. Ángulos entre dos vectores n-dimensionales en Python
- 9. Diferencias entre vectores _including_ NA
- 10. ¿Vector de dirección de Quaternion?
- 11. "Bloqueando" dos vectores y ordenándolos
- 12. Calculando la distancia de Hamming para dos vectores en R?
- 13. Animación de rotación de cubos de Quaternion
- 14. Obteniendo datos entre dos cadenas de fechas en MySQL
- 15. Obteniendo una función para devolver dos enteros
- 16. Obteniendo la "diferencia" entre dos matrices en C#?
- 17. Obteniendo todos los DateTimes entre dos 'DateTime's en C#
- 18. Obteniendo la diferencia entre los recuentos de dos subconsultas
- 19. 'Diferencia' entre dos cuaterniones
- 20. Calcular Quaternion inversa
- 21. Alternar, entrelazar o entrelazar dos vectores
- 22. Comparando dos vectores en una declaración if
- 23. Crear un mixin entre navegadores para transformar: rotar
- 24. Comprueba si dos vectores son iguales
- 25. Suma paralela para vectores
- 26. ¿Cómo calculo la similitud del coseno de dos vectores?
- 27. bibliotecas quaternion en C/C++
- 28. std :: multimap obteniendo dos rangos
- 29. Encontrar el ángulo firmado entre los vectores
- 30. Interweaving vectores
posible duplicado de [Encontrar quaternion que representa la rotación de un vector a otro] (http://stackoverflow.com/questions/1171849/finding-quaternion-representating-the-rotation-from-one-vector-to-another) – Boann