Kwaterniony

Definicja. Postać wykładnicza i trygonometryczna. Zagadnienia związane z ciałem liczb zespolonych.
ewa

Kwaterniony

Post autor: ewa »

kwaterniony. szukam wiadomości o ich zastosowaniu w praktyce.ewa
Nostry
Użytkownik
Użytkownik
Posty: 1361
Rejestracja: 9 cze 2004, o 15:07
Płeć: Mężczyzna
Lokalizacja: Litzmannstadt
Podziękował: 3 razy
Pomógł: 1 raz

Kwaterniony

Post autor: Nostry »

a co to takiego? ;-]
Gość

Kwaterniony

Post autor: Gość »

O kwaterianach nie slyszalem, ale kwateriony przydaja sie do opisywania czesci izometrii R3 i podobno mozna to wykorzystac w grafice 3D. Pozdrwawiam.
nieja

Kwaterniony

Post autor: nieja »

ani kwateriany
ani kwateriony
tylko kwaterniony



BASIA

Kwaterniony

Post autor: BASIA »

MYŚLĘ ŻE CHODZI O KWATERNIONY. MAM PODOBNY PROBLEM.PROSZĘ O ICH ZASTOSOWANIE NP. W FIZYCE,
Gość

Kwaterniony

Post autor: Gość »

to liczba postaci a+ib+jc+kd gdzie a,b,c,d to liczby rzeczywiste a ijk spelniają nastepujace warunki:
j*j=i*i=k*k=i*j*k=-1
Thunderlord
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 30 cze 2004, o 23:00
Płeć: Mężczyzna
Lokalizacja: From HELL

Kwaterniony

Post autor: Thunderlord »

kwaterniony używane są w programowaniu grafiki 3d przy reprezentacji obrotów

1. Co to jest kwaternion?

Kwaternion można zapisać w postaci

q = q0 + i*q1 + j*q2 + k*q3

Współczynniki qi są liczbami rzeczywistymi.

Inna, spotykana czasem, forma zapisu kwaternionów:

Q = q0 + q

gdzie q0 to liczba rzeczywista, a q to wektor rzeczywisty.
Umożliwia to traktowanie wektorów jako kwaternionów z zerową częścią skalarną.
2. Działania na kwaternionach

dla pierwszego zapisu
Działania dodawania i mnożenia kwaternionowego są zdefiniowane jak dla liczb, z tym że mnożenie jest przemienne tylko w przypadku mnożenia przez liczbę.
Mnożenie wyróżnionych elementów i, j, k opisane jest w tabelce (a*b)
a\b 1 i j k
1 1 i j k
i i -1 k -j
j j -k -1 i
k k j -i -1

Czyli np. mnożąc dwa kwaterniony

q1 = 1 + i + k
q2 = 2 + i + j

otrzymamy

q3 = q1*q2 = (1 + i + k) * (2 + i + j)
= 2 + i + j + 2i - 1 + k + 2k + j - i
= 1 + 2i + 2j + 3k

dla drugiego zapisu
Tutaj mnożenie kwaternionów można zapisać jako:

R = P*Q = r0 + r

r0 = p0*q0 -
r = p0*q + q0*p + p@q
gdzie @ oznacza iloczyn wektorowy
a oznacza iloczyn skalarny

Wtedy kwaternion odwrotny spełnia równanie Q^(-1)*Q = 1.
Kwaternion sprzężony to Qsp = q0 - q
Długość kwaternionu to wartość |Q| = sqrt(Q*Qsp)
3. Reprezentacja obrotów za pomocą kwaternionów

Obrót o kąt 'fi' wokół osi n jest opisany kwaternionem:

Q = cos(0.5*fi) + n*sin(0.5*fi)

to oznacza, że jeśli wektor n ma współrzędne w bazie ortonormalnej

n = n1*e1 + n2*e2 + n3*e3

to

Q = cos(0.5*fi) + (i*n1 + j*n2 + k*n3) * sin(0.5*fi)

Jeśli wektor v będzie reprezentowany przez kwaternion

v = 0 + v1*i + v2*j + v3*k

wtedy obrót tego wektora o kąt 'fi' można zdefiniować jako

v' = Q*v*Q^(-1)

Jeśli n jest wersorem (jego długość jest równa 1) to Q jest jednostkowy i Qsp = Q^(-1). Ta własność pozwala zapisać obrót jako

v' = Q*v*Qsp

Przypominam, że Qsp to kwaternion sprzężony.
Przy takich założeniach, każdy obrót jest określony przez dokładnie dwa kwaterniony jednostkowe: Q i Qsp.
Obrót zdefiniowany przez Q, po którym następuje obrót zdefiniowany przez P opisywany jest przez kwaternion

R = P*Q

v' = R*v*Rsp = P*Q*v*Qsp*Psp

Jeśli kwaterniony nie są jednostkowe, to obrót kwaternionem Q połączony jest z powiększeniem obracanego wektora Q*Qsp razy.
5. Interpolacja obrotu

Bardzo przydatne przy wykorzystaniu obrotów jest ich interpolowanie. Polega to na tym, że mamy początkowe położenie (obrót o 0 stopni) i położenie końcowe opisane kwaternionem Qk. Wtedy obrót możemy przeprowadzić płynnie. Niech trwa on od chwili t=0 do t=1. Kwaternion opisujący położenie w dowolnej chwili czasu 't' jest następujący:

Q(t) = [1*(1-t) + Qk*t] / |[1*(1-t) + Qk*t]|

|| oznacza długość kwaternionu.
t jest z przedziału (0,1]
ODPOWIEDZ