Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

rotvecd

Convertir cuaternión en vector de rotación (grados)

Desde R2019b

Descripción

ejemplo

rotationVector = rotvecd(quat) convierte el arreglo de cuaterniones, quat, en una matriz N-por-3 de vectores de rotación equivalentes en grados. Los elementos de quat se normalizan antes de la conversión.

Ejemplos

contraer todo

Convierta un escalar de cuaternión aleatorio en un vector de rotación en grados.

quat = quaternion(randn(1,4));
rotvecd(quat)
ans = 1×3

   96.6345 -119.0274   45.4312

Argumentos de entrada

contraer todo

Cuaternión a convertir, especificado como un objeto quaternion o un arreglo de objetos quaternion de cualquier dimensionalidad.

Argumentos de salida

contraer todo

Representación del vector de rotación, en grados, devuelta como una matriz numérica N-por 3 de vectores de rotación, donde N es el número de cuaterniones en el quat argumento.

Cada fila representa los ángulos [X Y Z] de los vectores de rotación en grados. La i aésima fila de rotationVector corresponde al elemento quat(i).

El tipo de datos del vector de rotación es el mismo que el tipo de datos subyacente de quat.

Tipos de datos: single | double

Algoritmos

Todas las rotaciones en 3-D se pueden representar mediante cuatro elementos: un eje de rotación de tres elementos y un ángulo de rotación. Si el eje de rotación está obligado a tener una unidad de longitud, el ángulo de rotación se puede distribuir entre los elementos del vector para reducir la representación a tres elementos.

Recuerde que un cuaternión se puede representar en forma de eje-ángulo.

q=cos(θ2)+sin(θ2)(xi+yj+zk),

donde θ es el ángulo de rotación en grados, y [x, y, z] representan el eje de rotación.

Dado un cuaternión con el formato

q=a+bi+cj+dk,

Puedes resolver el ángulo de rotación usando la forma eje-ángulo de cuaterniones:

θ=2cos1(a).

Suponiendo un eje normalizado, puede reescribir el cuaternión como un vector de rotación sin pérdida de información distribuyendo θ sobre las partes b, c y d. La representación del vector de rotación de q es

qrv=θsin(θ2)[b,c,d].

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido en R2019b

Consulte también

Funciones

Objetos