Przegląd
Poniższe funkcje manipulowają kwantionami.
Podsumowanie
Funkcje | |
---|---|
rsQuaternionAdd | Dodaj dwie kwaternony |
rsQuaternionConjugate | Sprzęgaj kwaternion |
rsQuaternionDot | Iloczyn skalarny dwóch kwaternionów |
rsQuaternionGetMatrixUnit | Pobierz macierz rotacji z kwaternionu |
rsQuaternionLoadBalance | Utwórz kwaternion rotacji |
rsQuaternionLoadBalanceUnit | Kwartionek reprezentujący obrót wokół dowolnego wektora jednostkowego |
rsQuaternionMultiply | Pomnóż kwartion przez skalar lub inny kwionion |
rsQuaternionNormalize | Normalizuj kwaternion |
rsQuaternionSet, | Utwórz kwaternion |
rsQuaternionSlerp | Sferyczna interpolacja liniowa między 2 kwaternionami |
Funkcje
rsQuaternionAdd : dodaj 2 kwartiony
void rsQuaternionAdd(rs_quaternion* q, const rs_quaternion* rhs); |
Parametry
q | Docelowy kwaternion, do którego chcesz dodać elementy. |
---|---|
Rhs | Kwartion do dodania. |
Dodaje 2 kwartiony, tj. *q += *rhs;
rsQuaternionConjugate : sprzężony z kwaternionem
void rsQuaternionConjugate(rs_quaternion* q); |
Parametry
q | Kwartion do zmodyfikowania. |
---|
Sprzęga kwanton.
rsQuaternionDot : iloczyn skalarny 2 kwartionów
float rsQuaternionDot(const rs_quaternion* q0, const rs_quaternion* q1); |
Parametry
kw. | Pierwsza kwaternion. |
---|---|
1 kw. | Drugie kwaternion. |
Zwraca iloczyn skalarny dwóch kwaternionów.
rsQuaternionGetMatrixUnit : pobierz macierz rotacji z kwartionu
void rsQuaternionGetMatrixUnit(rs_matrix4x4* m, const rs_quaternion* q); |
Parametry
min | Otrzymana macierz. |
---|---|
q | Znormalizowany kwaternion. |
Oblicza macierz rotacji ze znormalizowanego kwaternionu.
rsQuaternionLoadBalance : utwórz kwaternion rotacji
void rsQuaternionLoadBalance(rs_quaternion* q, zmiennoprzecinkowy, float x, float y, float z); |
Parametry
q | Docelowy kwaternion. |
---|---|
zgniły | Kąt obracania. |
x | Składnik X wektora. |
Y | Składnik Y wektora. |
Z | Komponent Z wektora. |
Wczytuje kwartion, który reprezentuje obrót dowolnego wektora (nie musi to być jednostka)
rsQuaternionLoadBalanceUnit : kwaterion reprezentujący rotację dowolnego wektora jednostkowego
void rsQuaternionLoadBalanceUnit(rs_quaternion* q, rotacja zmiennoprzecinkowa, zmiennoprzecinkowa x, zmiennoprzecinkowa y, float z); |
Parametry
q | Docelowy kwaternion. |
---|---|
zgniły | Kąt obrotu w radianach. |
x | Składnik X wektora. |
Y | Komponent Y wektora. |
Z | Komponent Z wektora. |
Wczytuje kwaternion reprezentujący rotację wokół dowolnego wektora jednostkowego.
rsQuaternionMultiply : pomnożenie kwartionu przez skalar lub inny kwaternion
void rsQuaternionMultiply(rs_quaternion* q, const rs_quaternion* rhs); | |
void rsQuaternionMultiply(rs_quaternion* q, skalar zmiennoprzecinkowy); |
Parametry
q | Docelowy kwaternion. |
---|---|
wartość skalarna | Skalar, przez który mnożysz kwionion. |
Rhs | Kwartion, przez który mnożysz docelową kwintion. |
Mnoży kwartion przez skalar lub inny kwartion, np. *q = *q * scalar;
lub *q = *q * *rhs;
.
rsQuaternionNormalize : normalizacja kwartionu
void rsQuaternionNormalize(rs_quaternion* q); |
Parametry
q | Kwartionnik do normalizacji. |
---|
Normalizuje kwaternion.
rsQuaternionSet : utwórz kwaternion
void rsQuaternionSet(rs_quaternion* q, const rs_quaternion* rhs); | |
void rsQuaternionSet(rs_quaternion* q, float w, float x, float y, float z); |
Parametry
q | Docelowy kwaternion. |
---|---|
W | Komponent W. |
x | Komponent X. |
Y | Komponent Y. |
Z | Komponent Z. |
Rhs | Kwaternion źródłowy. |
Tworzy kwanton z jego 4 elementów lub z innego kwionionu.
rsQuaternionSlerp : sferyczna interpolacja liniowa między 2 kwaternionami
void rsQuaternionSlerp(rs_quaternion* q, const rs_quaternion* q0, const rs_quaternion* q1, float t); |
Parametry
q | Kwaternion wyniku z interpolacji. |
---|---|
kw. | Pierwsze wejście kwionionu. |
1 kw. | Drugi kwionion wejściowy. |
T | Zakres interpolacji. |
Wykonuje sferyczną interpolację liniową między dwoma kwartionami.