Изменения

Перейти к: навигация, поиск

Матрица преобразования

5463 байта добавлено, 19:21, 4 сентября 2022
м
rollbackEdits.php mass rollback
Матрица преобразования - это некоторая матрица <tex> 3 \times 3 </tex>. Мы будем рассматривать матрицы вида
<tex> F = \left(\begin{array}{ccc}
a & b & t_x\\
c & d & t_y\\
\end{array}\right) </tex>
Допустим есть какое-то преобразование <tex> F </tex>, и <tex> F(P) = P' </tex> (к точке <tex> P </tex> применили преобразование <tex> F </tex> и получили точку <tex> P' </tex>). Тогда матрица преобразования <tex> F </tex>, умноженная на однородные координаты <tex> P </tex>, даёт однородные координаты <tex> P' </tex>. В каком-то смысле, любое линейное преобразование одновременно является матрицей, так же как точка {{---}} это набор координат.  Посмотрим как меняются координаты при таком преобразовании.
<tex> F \left(\begin{array}{c}
Вполне ожидаемый ответ.
 
 
=== Масштабирование вдоль осей ===
 
Задаёт преобразование <tex> x \rightarrow s_x x ,\ y \rightarrow s_y y </tex>.
 
Будем обозначать как <tex> S_{s_x, s_y} </tex>. Числа <tex> s_x </tex> и <tex> s_y </tex> называются коэффициентами масштабирования.
 
<tex> S_{s_x, s_y} = \left(\begin{array}{ccc}
s_x & 0 & 0\\
0 & s_y & 0\\
0 & 0 & 1
\end{array}\right) </tex>
 
'''Пример'''
 
Задача: Найдите новые координаты точки <tex> (3, 5) </tex> после масштабирования по оси <tex> O_x </tex> с коэффициентом 2 (по оси <tex> O_y </tex> масштаб остаётся таким же).
 
Решение: <tex> S_{2, 1} (\left(\begin{array}{c}
3\\
5\\
1
\end{array}\right)) =
</tex>
<tex>
\left(\begin{array}{ccc}
2 & 0 & 0\\
0 & 1 & 0\\
0 & 0 & 1
\end{array}\right) \cdot
</tex>
<tex>
\left(\begin{array}{c}
3\\
5\\
1
\end{array}\right) =
</tex>
<tex>
\left(\begin{array}{c}
2 \cdot 3\\
1 \cdot 5\\
1
\end{array}\right) =
</tex>
<tex>
\left(\begin{array}{c}
6\\
5\\
1
\end{array}\right)
</tex>
 
=== Поворот относительно начала координат ===
\end{array}\right)
</tex>
 
 
'''Замечание'''
 
<tex> R^{180} = \left(\begin{array}{ccc}
-1 & 0 & 0\\
0 & -1 & 0\\
0 & 0 & 1
\end{array}\right) </tex>, то есть центральная симметрия относительно начала координат меняет координаты точки на противоположные.
 
 
=== Тождественное преобразование ===
 
Это преобразование, оставляющее все точки неподвижными.
 
Его матрица: <tex> I = \left(\begin{array}{ccc}
1 & 0 & 0\\
0 & 1 & 0\\
0 & 0 & 1
\end{array}\right)
</tex>
 
= Композиция преобразований =
 
<tex> (g \circ f) x  = g (f (x)) </tex>
 
 
Задача: к точке <tex> (3, 5) </tex> применили осевую симметрию относительно <tex> O_x </tex>, и затем применили параллельный перенос на <tex> \overrightarrow{(2, 1)} </tex>. Какие новые координаты у точки?
 
Решение: обозначим нашу точку за <tex> P </tex>, новую точку за <tex> P' </tex>
 
Посчитаем двумя способами.
 
1) <tex> P' = S_{1, -1}(T_{\overrightarrow{(3, 2)}}(P)) =
\left(\begin{array}{ccc}
1 & 0 & 2\\
0 & 1 & 1\\
0 & 0 & 1
\end{array}\right) \cdot </tex>
<tex> (\left(\begin{array}{ccc}
1 & 0 & 0\\
0 & -1 & 0\\
0 & 0 & 1
\end{array}\right) \cdot </tex>
<tex> \left(\begin{array}{c}
3\\
5\\
1
\end{array}\right)) = </tex>
<tex> \left(\begin{array}{ccc}
1 & 0 & 2\\
0 & 1 & 1\\
0 & 0 & 1
\end{array}\right) \cdot </tex>
<tex> \left(\begin{array}{c}
3\\
-5\\
1
\end{array}\right) = </tex>
<tex> \left(\begin{array}{c}
5\\
-4\\
1
\end{array}\right) </tex>
 
 
 
2) Воспользуемся ассоциативностью умножения матриц (сочетательный закон)
 
<tex> P' = S_{1, -1}(T_{\overrightarrow{(3, 2)}}(P)) =
\left(\begin{array}{ccc}
1 & 0 & 2\\
0 & 1 & 1\\
0 & 0 & 1
\end{array}\right) \cdot </tex>
<tex> (\left(\begin{array}{ccc}
1 & 0 & 0\\
0 & -1 & 0\\
0 & 0 & 1
\end{array}\right) \cdot </tex>
<tex> \left(\begin{array}{c}
3\\
5\\
1
\end{array}\right)) = </tex>
<tex> (\left(\begin{array}{ccc}
1 & 0 & 2\\
0 & 1 & 1\\
0 & 0 & 1
\end{array}\right) \cdot </tex>
<tex> \left(\begin{array}{ccc}
1 & 0 & 0\\
0 & -1 & 0\\
0 & 0 & 1
\end{array}\right)) \cdot </tex>
<tex> \left(\begin{array}{c}
3\\
5\\
1
\end{array}\right) = </tex>
<tex> \left(\begin{array}{ccc}
1 & 0 & 2\\
0 & -1 & 1\\
0 & 0 & 1
\end{array}\right) \cdot </tex>
<tex> \left(\begin{array}{c}
3\\
5\\
1
\end{array}\right) = </tex>
<tex> \left(\begin{array}{c}
5\\
-4\\
1
\end{array}\right) </tex>
 
Заметим, что <tex> \left(\begin{array}{ccc}
1 & 0 & 2\\
0 & -1 & 1\\
0 & 0 & 1
\end{array}\right) </tex> {{---}} тоже какая-то матрица преобразования, в данном случае "осевая симметрия относительно <tex> O_x </tex>, с последующим параллельным переносом на <tex> \overrightarrow{(2, 1)} </tex>"
 
Действительно, <tex> P' = S_{1, -1}(T_{\overrightarrow{(2, 1)}}(P)) = (S_{1, -1} \circ T_{\overrightarrow{(2, 1)}}) P </tex>
 
Тогда матрица для <tex> (S_{1, -1} \circ T_{\overrightarrow{(2, 1)}}) </tex> будет <tex> \left(\begin{array}{ccc}
1 & 0 & 2\\
0 & -1 & 1\\
0 & 0 & 1
\end{array}\right) </tex>.
 
Получается, при композиции преобразований их матрицы перемножаются.
1632
правки

Навигация