GKIW Moduł 4

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania


Przekształcenia 2D, zapis macierzowy

Współczesna grafika komputerowa operuje na milionach elementów (punktów, trójkątów). Przy tak dużej liczbie zachodzi konieczność opisania operacji geometrycznych w taki sposób, aby ich wykonanie było z jednej strony efektywne, a z drugiej, aby opis był prosty i ujednolicony. Takie warunki spełnia opis macierzowy.

Niech P=[xpyp]T opisuje położenie punktu na płaszczyźnie. Najprostszym rozwiązaniem byłoby przyjęcie, że macierz M(2×2) opisuje przekształcenie punktu P na P i że P=MP


Przekształcenia 2D, obrót, problem przesunięcia I

Można zastanowić się nad tym, czy takie podejście do problemu wystarczy do opisu prostych operacji geometrycznych.

Rozpatrzmy zestaw przekształceń na płaszczyźnie: obrót, skalowanie, przesunięcie (translację).

Można zaproponować macierz 2x2, która, opisuje obrót punktu wokół początku układu współrzędnych.

Analogiczny opis można zaproponować dla operacji skalowania.


Przekształcenia 2D, obrót, problem przesunięcia II

Niech MT1=[abcd]. Niech wektor P=[TXTY] opisuje translację punktu na płaszczyźnie.

Czy można znaleźć takie a, b, c, d, aby MT1=[xp+TXyp+TY]=[abcd][xpyp] dla TX0 i TY0 .

Widać że nie jest to możliwe dla współrzędnych dowolnego punktu. Na dodatek punkt P=[00]T byłby punktem stałym takiego przekształcenia.

Jak zatem opisać translację na płaszczyźnie?

Operację tę można opisać macierzą M=[10TX01TY001]

Między współrzędnymi zachodzi następujący związek:

M=[Xp'Yp'1]=[10TX01TY001][XpYp1]

i jest to równoważne opisowi translacji o wektor w postaci układu równań:

{xp'=xp+TXyp'=yp+TY

Tak wykonana operacja wymaga użycia współrzędnych jednorodnych.