Esta página está en construcción: perdonen los errores, repeticiones y temas inacabados.
 
This page is being developed: I am sorry for errors, duplications  and unfinished subjects.
 
 
Quaterniones I (incluido en Danzante)
 
Hamilton definió a mediados del XIX estas extensiones de los números complejos, con tres unidades imaginarias y una real. Extraigo información de la ya indispensable y ubicua Wikipedia, y adjunto ahora extractos del propio Hamilton y de una experto en gráficos, Shoemaker.
 
 
Shoemaker resume ahora todo esto, de manera compacta y clara:
 
 
que resume bastante bien su naturaleza y su uso.
 
 Wikipedia ilustra sobre el tema en https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation, en particular el paso de quaterniones a la matriz equivalente.
 
 
 
Vea unas reflexiones propias sobre Matrices en espacio vectorial 3D. Y algunas intuiciones geométricas de esos entes, en Movimientos y transformaciones en plano y espacio. Descripción geométrica.
 
En VisualStudio podemos encontrar la matriz correspondiente a un quaternion mediante la operación Matrix3D.Rotate(Quaternion), aplicada a una matriz identidad (Identity). Después podemos rotar puntos y vectores mediante esa matriz.
 
Y aqui vemos cómo rotar puntos y/o vectores mediante quaterniones. Puntos y vectores han de pasarse a quaterniones para poder multiplicarlos mediante producto matricial
.

Rotating Points

Probably the most important result on this page is the formula for representing rotations in 3 dimensions using quaternions (although we will also discuss how to use quaternions for other transforms on this page). This formula for 3D rotations is:

Pout = q * Pin * conj(q)

where:

  • Pout and Pin are points in 3D space represented by the i, j and k parts of a quaternion (real part =0)
  • conj() is a conjugate function explained on this page. We sometimes write conj(q) as q'.
  • q is a quaternion which represents the rotation, if you prefer to think in terms of the angle and axis of the rotation then q is:

q = cos(a/2) + i ( x * sin(a/2)) + j (y * sin(a/2)) + k ( z * sin(a/2))

where:

  • a = rotation angle
  • x,y,z = rotation axis

So why is the rotation represented by this strange formula where the vector to be transformed is 'sandwiched' between two slightly different variants of 'q'? It is quite hard to get an intuitive grasp of this, although its easy to use it if you don't worry too much about how it works. If, like me, you like to know why things work then I have tried to work out an answer on this page.

 

http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/transforms/index.htm
 
Vea aquí interpolaciones entre dos conjuntos de puntos rotados.Proyecto Danzante.Interpolacion de Quaterniones y Matrices.htm
 
 

 
Vuelta al Principio    Última actualización: miércoles, 22 de julio de 2015    Visitantes: contador de visitas