Macierze te są o jeden wymiar większe niż przestrzeń na której operują. Czyli każde takie powyższe przekształcenie w 3D to macierz 4x4.
Trzy pierwsze kolumny w takiej macierzy reprezentują osie układu współrzędnych nowego układu współrzędnych do jakiego dokonujemy transformacji.
Weźmy macierz jednostkową 4x4:
I=[1000010000100001]
Dowolny punkt albo macierz wymnożoną przez macierz jednostkową nie zmienia swojej postaci. Ogólna postać macierzy transformacji:
I=[rightxupxforwardxtxrightyupyforwardytyrightzupzforwardztz0001]
Mnożąc przez siebie dowolną ilość macierzy rotacji i translacji 4x4 otrzymujemy macierz 4x4, która te wszystkie przekształcenia przedstawia jako jedną rotację i jedną translację. Macierz rotacji R wyciągamy wprost z macierzy 4x4. Translacja nie jest dana wprost z takiej macierzy. Dla macierzy M:IT=T
R−1R=I
R−1RT=T
R−1M=T
RTM=T
R−1R=I
R−1RT=T
R−1M=T
RTM=T
Zamiast T=RTM możemy użyć T=R−1Tr dzięki czemu uwzględnimy przypadki, gdzie R będąca fragmentem macierzy Tr nie spełnia wszystkich warunków macierzy rotacji, a zwłaszcza RT=R−1.
Podobnie możemy pokazać dla macierzy M=TR.
Wektory →right, →up, →forward to osie układu współrzędnego lokalnego. Mnożąc dowolny punkt przez macierz translacji transformowany jest on do układu współrzędnych wyznaczonego przez te wektory. Np: punkty leżące na osi OX będą leżały na nowej osi OX, której wersorem będzie →right.
Macierz odwrotna lub transponowana będzie dokonywać przekształcenia odwrotnego.
Jeśli chodzi o odwrotność rotacji to z faktu że: RT=R−1 wynika, że osie układ
współrzędnych rotacji odwrotnej wyznaczają wiersze macierze rotacji.
Brak komentarzy:
Prześlij komentarz