Elementarne macierze transformacji

Elementarne macierze transformacjimacierze 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[a].

Elementarne macierze translacji edytuj

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 edytuj

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 edytuj

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 edytuj

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ń:

  1. Rot01 – macierz przekształcająca zerowy układ współrzędnych w układ o indeksie pierwszym.
  2. 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 edytuj

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:

  1.  
  2.  
  3.  

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 edytuj

 
Zależność pomiędzy współrzędnymi punktu X w układzie B względem układu A. K to macierz należąca do SE(3).

Macierze należące do SE(3) pozwalają:

  1. przekształcić punkt P w Q względem ustalonego układu  
  2. przekształcić układ   w taki układ   że współrzędne punktu   względem   transformują się do układu   jako:
 

Uwagi edytuj

  1. Przyjęte zostało, że za pomocą tych macierzy opisywana będzie przestrzeń euklidesowa.

Bibliografia edytuj

  • 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.