Elementarne macierze transformacji – macierze opisujące zależność pomiędzy współrzędnymi wskazanego punktu przed i po transformacji. Przez transformację rozumiemy w tym przypadku translację (czyli przesunięcie), skalowanie oraz rotację (czyli obrót). Macierze te mają znaczenie na przykład w grafice komputerowej.
Najczęściej mają one o jeden rząd więcej niż wymiar wektora współrzędnych, a dokładniej mają rząd równy wymiarowi współrzędnych jednorodnych. Podzielić je można na trzy grupy, które zostały przedstawione poniżej[uwaga 1].
Elementarne macierze translacji
W tym przypadku trzy przesunięcia mogą zostać zapisane jako jedna macierz, ponieważ różnią się tylko ostatnią kolumną.
gdzie:
- a, b, c – przesunięcie wzdłuż osi X, Y oraz Z.
Można także rozbić tę macierz na 3 osobne: oraz
Elementarne macierze skalowania
Niezależnie wykonujemy skalowanie względem każdej z osi przyjmując odpowiedni współczynnik dla każdej z nich.
gdzie:
- S_x, S_y, S_z – współczynnik skalowania wzdłuż osi X, Y oraz Z.
Można także rozbić tę macierz na 3 osobne: oraz
Elementarne macierze rotacji
Obroty przedstawiane są w różny sposób, dlatego też elementarne macierze rotacji muszą być przedstawiane oddzielnie.
Dla osi X:
Dla osi Y:
Dla osi Z:
Składanie macierzy
Istnieje możliwość składania transformacji. Wówczas obliczamy macierz wynikową będącą iloczynem składowych macierzy transformacji, którą „działamy” na dany punkt w przestrzeni.
W powyższym przykładzie najpierw wykonujemy operację skalowania, następnie translacji o wektor. Takich operacji może być więcej. Każdą następną macierz transformacji dokładamy po lewej stronie iloczynu macierzy, przy czym mnożenie macierzy przez wektor wykonujemy od prawej strony do lewej.
Możemy także powyższą operację zastąpić iloczynem macierzy wynikowej przez wektor.
Macierz transformacji będącą złożeniem poszczególnych transformacji składowych otrzymamy ze wzoru.
Gdy są dane dwie (lub więcej) macierze przekształceń:
- Rot01 – macierz przekształcająca zerowy układ współrzędnych w układ o indeksie pierwszym.
- Rot12 – macierz przekształcająca układ pierwszy w układ drugi.
Obie macierze można złożyć w jedną macierz przekształcającą układ zerowy w układ drugi.
Rot02=Rot12*Rot01.
Macierze te oraz ich iloczyn należy do specjalnej grupy euklidesowej SE(3).
Specjalna grupa euklidesowa
Specjalna grupa euklidesowa SE(3) to zbiór macierzy (gdzie R to macierz opisująca obrót, a T to macierz opisująca translację), które spełniają warunki:
Specjalna grupa euklidesowa może być także zapisana jako iloczyn wektora oraz grupy obrotów, tj.:
Macierze należące do SE(3) pozwalają opisać ruch ciała sztywnego. Do ich konstrukcji wykorzystane mogą być elementarne macierze transformacji. Przy takim zapisie macierzy konieczne jest także stosowanie współrzędnych jednorodnych, żeby wymiar wektora współrzędnych był równy liczbie kolumn macierzy.
Interpretacje
Macierze należące do SE(3) pozwalają:
- przekształcić punkt P w Q względem ustalonego układu
- przekształcić układ w taki układ że współrzędne punktu względem transformują się do układu jako:
Uwagi
- ↑ Przyjęte zostało, że za pomocą tych macierzy opisywana będzie przestrzeń euklidesowa.
Bibliografia
- K. Tchoń, A. Mazur, I. Dulęba, R. Hossa, R. Muszyński, Manipulatory i roboty mobilne. Modele, planowanie ruchu, sterowanie, Warszawa 2000, ISBN 83-7101-427-9.