Fonctions quaternioniques de RenderScript

Présentation

Les fonctions suivantes manipulent des quaternions.

Résumé

Fonctions
rsQuaternionAdd Ajouter deux quaternions
Conjugate rsQuaternion Conjuguer un quaternion
rsQuaternionDot Produit scalaire de deux quaternions
rsQuaternionGetMatrixUnit Obtenir une matrice de rotation à partir d'un quaternion
rsQuaternionLoadScroll Créer un quaternion de rotation
rsQuaternionLoadScrollUnit Quaternion représentant une rotation par rapport à un vecteur unitaire arbitraire
rsQuaternionMultiply Multiplier un quaternion par un scalaire ou un autre quaternion
rsQuaternionNormalize Normaliser un quaternion
Ensemble rsQuaternion Créer un quaternion
rsQuaternionSlerp Interpolation linéaire sphérique entre deux quaternions

Fonctions

rsQuaternionAdd : ajouter deux quaternions

void rsQuaternionAdd(rs_quaternion* q, const rs_quaternion* rhs);
Paramètres
aQuaternion de destination à ajouter.
RHQuaternion à ajouter.

Ajoute deux quaternions, soit *q += *rhs;

rsQuaternionConjugate : conjugué d'un quaternion

void rsQuaternionConjugate(rs_quaternion* q);
Paramètres
aQuaternion à modifier.

Conjugue le quaternion.

rsQuaternionDot : produit scalaire de deux quaternions

float rsQuaternionDot(const rs_quaternion* q0, const rs_quaternion* q1);
Paramètres
q0Premier quaternion.
q1Deuxième quaternion.

Renvoie le produit scalaire de deux quaternions.

rsQuaternionGetMatrixUnit : obtenir une matrice de rotation à partir d'un quaternion

void rsQuaternionGetMatrixUnit(rs_matrix4x4* m, const rs_quaternion* q);
Paramètres
mMatrice résultante.
aQuaternion normalisé.

Calcule une matrice de rotation à partir du quaternion normalisé.

rsQuaternionLoadScroll : créer un quaternion de rotation

void rsQuaternionLoadScroll(rs_quaternion* q, float rot, float x, float y, float z);
Paramètres
aQuaternion de destination.
pourritureAngle de rotation.
xComposante X d'un vecteur.
yComposante Y d'un vecteur.
mComposante Z d'un vecteur.

Charge un quaternion représentant une rotation par rapport à un vecteur arbitraire (ne doit pas nécessairement être une unité)

rsQuaternionLoadScrollUnit : quaternion représentant une rotation par rapport à un vecteur unitaire arbitraire.

void rsQuaternionLoadScrollUnit(rs_quaternion* q, float rot, float x, float y, float z);
Paramètres
aQuaternion de destination.
pourritureAngle de rotation, en radians.
xComposante X du vecteur.
yComposante Y du vecteur.
mComposante Z du vecteur.

Charge un quaternion représentant une rotation par rapport à un vecteur unitaire arbitraire.

rsQuaternionMultiply : multiplier un quaternion par un scalaire ou un autre quaternion

void rsQuaternionMultiply(rs_quaternion* q, const rs_quaternion* rhs);
void rsQuaternionMultiply(rs_quaternion* q, float scalaire);
Paramètres
aQuaternion de destination.
scalaireScalaire pour multiplier le quaternion.
RHQuaternion par lequel multiplier le quaternion de destination.

Multiplie un quaternion par un scalaire ou un autre quaternion (par exemple, *q = *q * scalar; ou *q = *q * *rhs;).

rsQuaternionNormalize : normaliser un quaternion

void rsQuaternionNormalize(rs_quaternion* q);
Paramètres
aQuaternion à normaliser.

Normalise le quaternion.

rsQuaternionSet : créer un quaternion

void rsQuaternionSet(rs_quaternion* q, const rs_quaternion* rhs);
void rsQuaternionSet(rs_quaternion* q, float w, float x, float y, float z);
Paramètres
aQuaternion de destination.
zComposant W.
xX.
yComposant Y.
mComposant Z.
RHQuaternion source.

Crée un quaternion à partir de ses quatre composants ou d'un autre quaternion.

rsQuaternionSlerp : interpolation linéaire sphérique entre deux quaternions

void rsQuaternionSlerp(rs_quaternion* q, const rs_quaternion* q0, const rs_quaternion* q1, float t);
Paramètres
aRésultat du quaternion de l'interpolation.
q0Premier quaternion d'entrée.
q1Deuxième quaternion d'entrée.
iDegré d'interpolation.

Effectue une interpolation linéaire sphérique entre deux quaternions.