Funciones de cuaternión de RenderScript

Descripción general

Las siguientes funciones manipulan cuaterniones.

Resumen

Funciones
rsQuaternionAdd Suma dos cuaterniones
rsQuaternionConjugate Conjugar un cuaternión
rsQuaternionDot Producto punto de dos cuaterniones
rsQuaternionGetMatrixUnit. Obtén una matriz de rotación a partir de un cuaternión
rsQuaternionLoadRotate Crea un cuaternión de rotación
rsQuaternionLoadRotateUnit Cuaternión que representa una rotación sobre un vector unitario arbitrario
rsQuaternionMultiply Multiplicar un cuaternión por un escalar o algún otro cuaternión
rsQuaternionNormalize Normaliza un cuaternión
rsQuaternionSet Crea un cuaternión
rsQuaternionSlerp Interpolación lineal esférica entre dos cuaterniones

Funciones

rsQuaternionAdd : Agrega dos cuaterniones

void rsQuaternionAdd(rs_quaternion* q, const rs_quaternion* rhs);
Parámetros
qCuaternión de destino al que se agregará contenido.
rhsCuaternión para agregar.

Agrega dos cuaterniones, es decir, *q += *rhs;

rsQuaternionConjugate : Conjugar un cuaternión

void rsQuaternionConjugate(rs_quaternion* q);
Parámetros
qCuaternión para modificar.

Conjuga el cuaternión.

rsQuaternionDot : Producto de punto de dos cuaterniones

float rsQuaternionDot(const rs_quaternion* q0, const rs_quaternion* q1);
Parámetros
t0Primer cuaternión.
q1Segundo cuaternión.

Muestra el producto escalar de dos cuaterniones.

rsQuaternionGetMatrixUnit : Obtén una matriz de rotación a partir de un cuaternión

void rsQuaternionGetMatrixUnit(rs_matrix4x4* m, const rs_quaternion* q);
Parámetros
mMatriz resultante.
qCuaternión normalizado.

Calcula una matriz de rotación a partir del cuaternión normalizado.

rsQuaternionLoadRotate : Crea un cuaternión de rotación

void rsQuaternionLoadRotate(rs_quaternion* q, float rot, float x, float y, float z);
Parámetros
qCuaternión de destino.
podridoÁngulo para rotar.
xComponente X de un vector.
yComponente Y de un vector.
zComponente Z de un vector.

Carga un cuaternión que representa una rotación sobre un vector arbitrario (no tiene que ser una unidad).

rsQuaternionLoadRotateUnit : cuaternión que representa una rotación sobre un vector unitario arbitrario

void rsQuaternionLoadRotateUnit(rs_quaternion* q, float rot, float x, float y, float z);
Parámetros
qCuaternión de destino.
podridoÁngulo para rotar, en radianes.
xComponente X del vector.
yComponente Y del vector.
zComponente Z del vector.

Carga un cuaternión que representa una rotación sobre un vector unitario arbitrario.

rsQuaternionMultiply : Multiplica un cuaternión por un escalar o algún otro cuaternión.

void rsQuaternionMultiply(rs_quaternion* q, const rs_quaternion* rhs);
void rsQuaternionMultiply(rs_quaternion* q, escalar flotante);
Parámetros
qCuaternión de destino.
escalarEscalar por el que se multiplica el cuaternión.
rhsCuaternión por el que se multiplica el cuaternión de destino.

Multiplica un cuaternión por un escalar o por otro cuaternión, p.ej., *q = *q * scalar; o *q = *q * *rhs;.

rsQuaternionNormalize : Normaliza un cuaternión

void rsQuaternionNormalize(rs_quaternion* q);
Parámetros
qCuaternión para normalizar.

Normaliza el cuaternión.

rsQuaternionSet : Crea un cuaternión

void rsQuaternionSet(rs_quaternion* q, const rs_quaternion* rhs);
void rsQuaternionSet(rs_quaternion* q, float w, float x, float y, float z);
Parámetros
qCuaternión de destino.
wComponente W
xX.
yY.
zComponente Z.
rhsCuaternión de origen.

Crea un cuaternión a partir de sus cuatro componentes o a partir de otro cuaternión.

rsQuaternionSlerp : Interpolación lineal esférica entre dos cuaterniones

void rsQuaternionSlerp(rs_quaternion* q, const rs_quaternion* q0, const rs_quaternion* q1, float t);
Parámetros
qCuaternión de resultados a partir de la interpolación.
t0Primer cuaternión de entrada.
q1Segundo cuaternión de entrada.
aEl porcentaje de interpolación.

Realiza la interpolación lineal esférica entre dos cuaterniones.