Funzioni quaternione di RenderScript

Panoramica

Le seguenti funzioni manipolano i quaternioni.

Riepilogo

Funzioni
Aggiungi rsQuaternion Sommare due quaternioni
Coniugato rsQuaternion Coniugare un quaternione
DotQuaternion Prodotto scalare di due quaternioni
rsQuaternionGetMatrixUnit Ottieni una matrice di rotazione da un quaternione
rsQuaternionLoadRuota Crea un quaternione di rotazione
rsQuaternionLoadWheelUnit Quaternione che rappresenta una rotazione rispetto a un vettore unitario arbitrario
rsQuaternionMultiply Moltiplicare un quaternione per uno scalare o un altro quaternione
rsQuaternionNormalize Normalizzare un quaternione
SetQuaternion Crea un quaternione
rsQuaternionSlerp Interpolazione sferica lineare tra due quaternioni

Funzioni

rsQuaternionAdd : aggiungi due quaternioni

void rsQuaternionAdd(rs_quaternion* q, const rs_quaternion* rhs);
Parametri
qQuaternione di destinazione a cui aggiungere elementi.
dxQuaternione da aggiungere.

Aggiunge due quaternioni, ad esempio *q += *rhs;

rsQuaternionConjugate : coniuga un quaternion

void rsQuaternionConjugate(rs_quaternion* q);
Parametri
qQuaternione da modificare.

Coniuga il quaternione.

rsQuaternionDot : prodotto scalare di due quaternioni

float rsQuaternionDot(const rs_quaternion* q0, const rs_quaternion* q1);
Parametri
tPrimo quaternione.
t1Secondo quaternione.

Restituisce il prodotto scalare di due quaternioni.

rsQuaternionGetMatrixUnit : ottieni una matrice di rotazione da un quaternione

void rsQuaternionGetMatrixUnit(rs_matrix4x4* m, const rs_quaternion* q);
Parametri
mMatrice risultante.
qQuaternione normalizzato.

Calcola una matrice di rotazione dal quaternione normalizzato.

rsQuaternionLoadRuota : crea un quaternione di rotazione

void rsQuaternionLoadRuota(rs_quaternion* q, float rot, float x, y in virgola mobile, float z);
Parametri
qQuaternione della destinazione.
marcireAngolo di rotazione.
xComponente X di un vettore.
yComponente Y di un vettore.
zComponente Z di un vettore.

Carica un quaternione che rappresenta una rotazione relativa a un vettore arbitrario (non deve essere un'unità)

rsQuaternionLoadWheelUnit : quaternion che rappresenta una rotazione rispetto a un vettore unitario arbitrario

void rsQuaternionLoadRuotaUnit(rs_quaternion* q, float rot, float x, y in virgola mobile, float z);
Parametri
qQuaternione della destinazione.
marcireAngolo di rotazione in radianti.
xComponente X del vettore.
yComponente Y del vettore.
zComponente Z del vettore.

Carica un quaternione che rappresenta una rotazione attorno a un vettore unitario arbitrario.

rsQuaternionMultiply : moltiplica un quaternione per uno scalare o un altro quaternione

void rsQuaternionMultiply(rs_quaternion* q, const rs_quaternion* rhs);
void rsQuaternionMultiply(rs_quaternion* q, float scalare);
Parametri
qQuaternione della destinazione.
scalareScalare per moltiplicare il quaternione per.
dxQuaternione per moltiplicare il quaternione di destinazione.

Moltiplica un quaternione per uno scalare o per un altro quaternione, ad esempio *q = *q * scalar; o *q = *q * *rhs;.

rsQuaternionNormalize : normalizza un quaternione

void rsQuaternionNormalize(rs_quaternion* q);
Parametri
qQuaternione per normalizzare.

Normalizza il quaternione.

rsQuaternionSet : crea un quaternione

void rsQuaternionSet(rs_quaternion* q, const rs_quaternion* rhs);
void rsQuaternionSet(rs_quaternion* q, float w, float x, float y, float z);
Parametri
qQuaternione della destinazione.
wComponente W.
xComponente X.
yComponente Y.
zComponente Z.
dxQuaternione di origine.

Crea un quaternione dai suoi quattro componenti o da un altro quaternione.

rsQuaternionSlerp : interpolazione lineare sferica tra due quaternioni

void rsQuaternionSlerp(rs_quaternion* q, const rs_quaternion* q0, const rs_quaternion* q1, float t);
Parametri
qQuaternione del risultato dall'interpolazione.
tPrimo quaternione di input.
t1Secondo quaternione di input.
tDi quanto interpolare.

Esegue l'interpolazione lineare sferica tra due quaternioni.