RenderScript-Quaternionsfunktionen

Übersicht

Die folgenden Funktionen bearbeiten Quaternionen.

Zusammenfassung

Funktionen
rsQuaternionAdd Zwei Quaternionen addieren
rsQuaternionConjugate Ein Quaternion konjugieren
RSQuaternionDot Punktprodukt zweier Quaternionen
rsQuaternionGetMatrixUnit Rotationsmatrix aus einem Quaternion erhalten
rsQuaternionLoadRotation Rotationsquaternion erstellen
rsQuaternionLoadRotUnit Quaternion, die eine Rotation um einen beliebigen Einheitsvektor darstellt
rsQuaternionMultiply Ein Quaternion mit einem Skalar oder einem anderen Quaternion multiplizieren
rsQuaternionNormalize Quaternion normalisieren
rsQuaternionSet Quaternion erstellen
rsQuaternionSlerp Sphärische lineare Interpolation zwischen zwei Quaternionen

Funktionen

rsQuaternionAdd : Zwei Quaternien hinzufügen

void rsQuaternionAdd(rs_quaternion* q, const rs_quaternion* rhs);
Parameter
qZielquaternion, der hinzugefügt werden soll.
RHSQuaternion hinzufügen.

Fügt zwei Quaternionen hinzu, z.B. *q += *rhs;

rsQuaternionConjugate : Ein Quaternion konjugieren

void rsQuaternionConjugate(rs_quaternion* q);
Parameter
qZu änderndes Quaternion.

Konjugiert das Quaternion.

rsQuaternionDot : Punktprodukt zweier Quaternien

float rsQuaternionDot(const rs_quaternion* q0, const rs_quaternion* q1);
Parameter
Q0Erste Quaternion.
q1Zweite Quaternion.

Gibt das Skalarprodukt zweier Quaternionen zurück.

rsQuaternionGetMatrixUnit : Rotationsmatrix aus einer Quaternion abrufen

void rsQuaternionGetMatrixUnit(rs_matrix4x4* m, const rs_quaternion* q);
Parameter
mDie resultierende Matrix.
qNormalisierte Quaternion.

Berechnet eine Rotationsmatrix aus der normalisierten Quaternion.

rsQuaternionLoadRotation : Rotationsquaternion erstellen

void rsQuaternionLoadUsing(rs_quaternion* q, float rot, float x, float y, float z);
Parameter
qZielquaternion.
faulWinkel zum Drehen
xX-Komponente eines Vektors.
yY-Komponente eines Vektors.
zZ-Komponente eines Vektors

Lädt ein Quaternion, das eine Rotation um einen beliebigen Vektor darstellt (muss keine Einheit sein)

rsQuaternionLoadRotUnit : Quaternion, das eine Rotation um einen beliebigen Einheitsvektor darstellt

void rsQuaternionLoadRotUnit(rs_quaternion* q, float rot, float x, float y, float z);
Parameter
qZielquaternion.
faulWinkel zum Drehen im Bogenmaß
xX-Komponente des Vektors.
yY-Komponente des Vektors.
zZ-Komponente des Vektors.

Lädt ein Quaternion, das eine Rotation um einen beliebigen Einheitsvektor darstellt.

rsQuaternionMultiply : Ein Quaternion mit einem Skalar oder einem anderen Quaternion multiplizieren

void rsQuaternionMultiply(rs_quaternion* q, const rs_quaternion* rhs);
void rsQuaternionMultiply(rs_quaternion* q, float scalar);
Parameter
qZielquaternion.
SkalarSkalar, mit dem das Quaternion multipliziert werden soll.
RHSMit Quaternion die Zielquarantäne multiplizieren.

Multipliziert ein Quaternion mit einem Skalar oder mit einem anderen Quaternion, z.B. *q = *q * scalar; oder *q = *q * *rhs;.

rsQuaternionNormalize: Quaternion normalisieren

void rsQuaternionNormalize(rs_quaternion* q);
Parameter
qQuaternion normalisieren.

Normalisiert das Quaternion.

rsQuaternionSet : Quaternion erstellen

void rsQuaternionSet(rs_quaternion* q, const rs_quaternion* rhs);
void rsQuaternionSet(rs_quaternion* q, float w, float x, float y, float z);
Parameter
qZielquaternion.
wKomponente „W“.
xX.
yY-Komponente.
zZ-Komponente
RHSQuellquaternion.

Erstellt ein Quaternion aus seinen vier Komponenten oder aus einem anderen Quaternion.

rsQuaternionSlerp : Sphärische lineare Interpolation zwischen zwei Quaternionen

void rsQuaternionSlerp(rs_quaternion* q, const rs_quaternion* q0, const rs_quaternion* q1, float t);
Parameter
qErgebnisquaternion aus der Interpolation.
Q0Erste Eingabequaternion.
q1Zweites Eingabequaternion.
tWie viel soll interpoliert werden?

Führt sphärische lineare Interpolation zwischen zwei Quaternionen durch.