Funções do RenderScript do Quaternion

Visão geral

As funções a seguir manipulam quatérnios.

Resumo

Funções
rsQuaternionAdd (em inglês) Somar dois quatérnios
rsQuaternionConjugate (em inglês) Conjugar um quatérnio
rsQuaternionDot (em inglês) Produto escalar de dois quatérnios
rsQuaternionGetMatrixUnit Calcular uma matriz de rotação de um quatérnio
rsQuaternionLoadReturn (em inglês) Criar um quatérnio de rotação
rsQuaternionLoadRotationUnit (em inglês) Quaternion que representa uma rotação sobre um vetor unitário arbitrário
rsQuaternionMultiply (em inglês) Multiplicar um quatérnio por um escalar ou outro quatérnio
rsQuaternionNormalize. Normalizar um quatérnio
rsQuaternionSet (em inglês) Criar um quatérnio
rsQuaternionSlerp (em inglês) Interpolação linear esférica entre dois quatérnios

Funções

rsQuaternionAdd : adicionar dois quatérnios

void rsQuaternionAdd(rs_quaternion* q, const rs_quaternion* rhs);
Parâmetros
qQuaternion de destino a ser adicionado.
rhsQuaternion para adicionar.

Adiciona dois quatérnios, ou seja, *q += *rhs;

rsQuaternionConjugate : conjuga um quaternion

void rsQuaternionConjugate(rs_quaternion* q);
Parâmetros
qQuaternion para modificar.

Conjuga o quatérnio.

rsQuaternionDot : produto escalar de dois quatérnios

float rsQuaternionDot(const rs_quaternion* q0, const rs_quaternion* q1);
Parâmetros
T0Primeiro quatérnio.
q1Segundo quatérnio.

Retorna o produto escalar de dois quatérnios.

rsQuaternionGetMatrixUnit : receber uma matriz de rotação de um quaternion

void rsQuaternionGetMatrixUnit(rs_matrix4x4* m, const rs_quaternion* q);
Parâmetros
mMatriz resultante.
qQuatérnio normalizado.

Calcula uma matriz de rotação com base no quatérnio normalizado.

rsQuaternionLoadReturn : criar um quatérnio de rotação

void rsQuaternionLoadScroll(rs_quaternion* q, flutuação rot, float x, flutuação y, flutuação z);
Parâmetros
qQuaternion de destino.
apodrecerÂngulo para girar.
xcomponente X de um vetor.
yComponente Y de um vetor.
zZ de um vetor.

Carrega um quatérnio que representa uma rotação em um vetor arbitrário (não precisa ser uma unidade)

rsQuaternionLoadRotationUnit : quatérnio que representa uma rotação em torno de um vetor unitário arbitrário

void rsQuaternionLoadRotationUnit(rs_quaternion* q, flutuação rot, flutuação x, flutuação y, flutuação z);
Parâmetros
qQuaternion de destino.
apodrecerÂngulo para girar, em radianos.
xcomponente X do vetor.
yComponente Y do vetor.
zComponente Z do vetor.

Carrega um quatérnio que representa uma rotação em torno de um vetor unitário arbitrário.

rsQuaternionMultiply : multiplicar um quaternion por um escalar ou outro quaternion

void rsQuaternionMultiply(rs_quaternion* q, const rs_quaternion* rhs);
void rsQuaternionMultiply(rs_quaternion* q, flutuante escalar);
Parâmetros
qQuaternion de destino.
escalarEscalar pelo qual multiplicar o quatérnio.
rhsQuaternion pelo qual multiplicar o quatérnio de destino.

Multiplica um quatérnio por um escalar ou por outro quatérnio, por exemplo, *q = *q * scalar; ou *q = *q * *rhs;.

rsQuaternionNormalize : normaliza um quaternion

void rsQuaternionNormalize(rs_quaternion* q);
Parâmetros
qQuaternion a ser normalizado.

Normaliza o quatérnio.

rsQuaternionSet : criar um quaternion

void rsQuaternionSet(rs_quaternion* q, const rs_quaternion* rhs);
void rsQuaternionSet(rs_quaternion* q, flutuação w, float x, float y, float z);
Parâmetros
qQuaternion de destino.
wComponente W.
xcomponente X.
yComponente Y.
zZ.
rhsQuaternion de origem.

Cria um quatérnio dos quatro componentes ou de outro quatérnio.

rsQuaternionSlerp : interpolação linear esférica entre dois quatérnios

void rsQuaternionSlerp(rs_quaternion* q, const rs_quaternion* q0, const rs_quaternion* q1, float t);
Parâmetros
qQuaternion do resultado da interpolação.
T0Quaternion de primeira entrada.
q1Quaternion de entrada.
tPor quanto interpolar.

Executa interpolação linear esférica entre dois quatérnios.