Podręcznik Grafika komputerowa i wizualizacja
Rozdział 4. PRZEKSZTAŁCENIA GEOMETRYCZNE
4.4. Składanie przekształceń. Przekształcenie odwrotne
Niech dane będą przekształcenia wykonywane kolejno M1 i M2 ,
czyli P' = M1 · P i P'' = M2 · P' .
Podstawiając wynik pierwszej operacji do drugiego równania : P'' = M2 · M1 · P .
Mnożenie macierzy jest operacją łączną więc :
P'' = M21 · P gdzie M21 = M2 · M
Jeśli zatem MC opisuje całkowite przekształcenie będące wynikiem złożenia przekształceń elementarnych
M1 , M2 , M3 , . . . MN ( w takiej kolejności) to :
MC = MN · . . . · M3 · M2 · M1
Oczywiście mnożenie macierzy jest operacją łączną ale nie jest operacją przemienną – złożenie najpierw translacji a potem obrotu jest innym przekształceniem niż złożenie najpierw obrotu a potem translacji.
Często pojawiającym się problemem w próbach implementacji przekształceń geometrycznych w grafice jest problem punktu odniesienia operacji.
Skalowanie jest operacją zmieniającą proporcje
wymiarów względem początku układu współrzędnych. Punkt [0,0,0] jest punktem stałym tego przekształcenia. Wyobraźmy sobie
dwukrotne powiększenie pewnego obiektu (np. powiększenie domu jak na rysunku 4.22).
Powiększenie dwukrotne oznacza nie tylko, że zwiększą się wymiary obiektu.
Oznacza również, że każdy punkt obiektu zwiększy dwukrotnie odległość od
początku układu współrzędnych. A przecież obiekt jest „osadzony” w pewnych
realiach sceny – np. wejście do domu jest w określonym miejscu. Prosta
realizacja skalowania prowadzi do pewnych konfliktów. Aby tego uniknąć należy
wybrać punkt obiektu, który powinien zachować współrzędne – punkt odniesienia.
A następnie zrealizować skalowanie względem tego punktu odniesienia. Efekt takiej (złożonej) operacji będzie uwzględniał
uwarunkowania punktu odniesienia (rys. 4.23).
W przypadku skalowania złożenia operacji wygląda następująco:
- Przesunięcie obiektu, aby punkt odniesienia znalazł się w początku układu współrzędnych.
- Skalowanie obiektu.
- Przesunięcie odwrotne do operacji 1.
Rys.4.22. Skalowanie bez uwzględnienia punktu odniesienia.
Rys.4.23. Skalowanie uwzględniające punkt odniesienia.
Jeśli macierz M opisuje pewną transformację geometryczną, przekształcenie współrzędnych jest opisane równaniem
P' = M · P
i jeśli istnieje przekształcenie odwrotne opisane macierzą M -1 to
P = M -1 · P'
Oczywiście nie zawsze konieczne jest wyznaczanie macierzy odwrotnej, np. dla translacji o dany wektor przekształceniem odwrotnym będzie translacja o wektor przeciwny, dla obrotu o zadany kąt obrót wokół tej samej osi o kąt przeciwny itp.
Ponieważ symetrie, translacja, obroty i skalowanie opisane odpowiednimi macierzami są operacjami odwracalnymi, to w bardzo prosty sposób można pokazać, że dowolna operacja będąca złożeniem dowolnego zestawu tych operacji, jest też operacją odwracalną.
Jeśli zatem MC opisuje całkowite przekształcenie będące wynikiem złożenia przekształceń elementarnych
MC = MN · . . . ·M3 · M2 · M1
i jeśli każde z nich jest odwracalne to :
MC-1 = M1-1 · M2-1 · M3-1 · . . . · MN-1