Elementarne macierze transformacji

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania

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 | edytuj kod]

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 | edytuj kod]

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 | edytuj kod]

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 | edytuj kod]

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.

Obydwie 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 | edytuj kod]

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[edytuj | edytuj kod]

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 | edytuj kod]

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

Bibliografia[edytuj | edytuj kod]

  • K.Tchoń, A.Mazur, I.Dulęba, R.Hossa, R.Muszyński - Manipulatory i roboty mobilne: Modele, planowanie ruchu, sterowanie. Warszawa 2000 r. (​ISBN 83-7101-427-9​)