2011-07-09

Macierz skalowania

Macierz skalowania definiujemy dla 3D jako:

$S=\begin{bmatrix}
s_x & 0 & 0 & 0 \\
0 & s_y & 0 & 0 \\
0 & 0 & s_z & 0 \\
0 & 0 & 0 & 1 \\
\end{bmatrix}$

Łatwo sprawdzić, że dla wektora $\vec v=\begin{bmatrix} v_x & v_y & v_z \\\end{bmatrix}$:

$\begin{bmatrix}
s_x & 0 & 0 & 0 \\
0 & s_y & 0 & 0 \\
0 & 0 & s_z & 0 \\
0 & 0 & 0 & 1 \\
\end{bmatrix}
\;\;\;
\begin{bmatrix} v_x \\ v_y \\ v_z \\ 1 \\\end{bmatrix}
=
\begin{bmatrix} s_x v_x \\ s_y v_y \\ s_z v_z \\ 1 \\\end{bmatrix}
$

Jeśli trójka $\mathbf{\vec v}$ jest punktem, to jest traktowana jako wektor względem początku układu współrzędnych. Czyli jeśli punkt należy do obiektu to jego środek powinien leżeć w środku układu współrzędnych, żeby całą operacja miała sens.

Chcąc przeskalować obiekt nie leżący w środku układu współrzędnych musimy złożyć macierz transformacji z macierzy transpozycji do środka układu współrzędnych, macierzy do niej odwrotnej i samej macierzy skalowania.

Transpozycja macierzy skalowania jest równa jej samej.

Brak komentarzy:

Prześlij komentarz