|
|
Строка 319: |
Строка 319: |
| 0 & -1 & 1\\ | | 0 & -1 & 1\\ |
| 0 & 0 & 1 | | 0 & 0 & 1 |
− | \end{array}\right) </tex> {{---}} тоже какая-то матрица преобразования, в данном случае "осевая симметрия относительно <tex> O_x </tex>, с последующим параллельным переносом на <tex> \overrightarrow{(2, 1)} </tex> | + | \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> P' = S_{1, -1}(T_{\overrightarrow{(2, 1)}}(P)) = (S_{1, -1} \circ T_{\overrightarrow{(2, 1)}}) P </tex> |
Будем рассматривать двумерный случай.
Матрица преобразования - это некоторая матрица [math] 3 \times 3 [/math]. Мы будем рассматривать матрицы вида
[math] \left(\begin{array}{ccc}
a & b & t_x\\
c & d & t_y\\
0 & 0 & 1
\end{array}\right) [/math]
Допустим есть какое-то преобразование [math] F [/math], и [math] F(P) = P' [/math] (к точке [math] P [/math] применили преобразование [math] F [/math] и получили точку [math] P' [/math]).
Тогда матрица преобразования [math] F [/math], умноженная на однородные координаты [math] P [/math], даёт однородные координаты [math] P' [/math].
В каком-то смысле, любое линейное преобразование одновременно является матрицей, так же как точка — это набор координат.
Посмотрим как меняются координаты при преобразовании.
[math] F \left(\begin{array}{c}
x\\
y\\
1
\end{array}\right) =
[/math]
[math] \left(\begin{array}{ccc}
a & b & t_x\\
c & d & t_y\\
0 & 0 & 1
\end{array}\right) \cdot
[/math]
[math] \left(\begin{array}{c}
x\\
y\\
1
\end{array}\right) =
[/math]
[math] \left(\begin{array}{c}
a x + b y + t_x\\
c x + d y + t_y\\
1
\end{array}\right)
[/math].
То есть новые координаты как-то линейно зависят от старых.
Рассмотрим частные случаи преобразований.
Базовые преобразования
Параллельный перенос
Задаёт преобразование [math] x \rightarrow x + t_x ,\ y \rightarrow y + t_y [/math].
Обозначается [math] T_{\overrightarrow v} [/math], где [math] \overrightarrow v = (t_x, t_y) [/math] — вектор параллельного переноса.
[math] T_{(t_x, t_y)} = \left(\begin{array}{ccc}
1 & 0 & t_x\\
0 & 1 & t_y\\
0 & 0 & 1
\end{array}\right) [/math]
Пример
Задача: Найдите новые координаты точки [math] (6, 9) [/math] после параллельного переноса плоскости на вектор [math] \overrightarrow v = (1, 2) [/math].
Решение: [math] T_{(a, b)} (\left(\begin{array}{c}
6\\
9\\
1
\end{array}\right)) =
[/math]
[math]
\left(\begin{array}{ccc}
1 & 0 & 1\\
0 & 1 & 2\\
0 & 0 & 1
\end{array}\right) \cdot
[/math]
[math]
\left(\begin{array}{c}
6\\
9\\
1
\end{array}\right) =
[/math]
[math]
\left(\begin{array}{c}
6 + 1\\
9 + 2\\
1
\end{array}\right) =
[/math]
[math]
\left(\begin{array}{c}
7\\
11\\
1
\end{array}\right)
[/math]
Вполне ожидаемый ответ.
Масштабирование вдоль осей
Задаёт преобразование [math] x \rightarrow s_x x ,\ y \rightarrow s_y y [/math].
Будем обозначать как [math] S_{s_x, s_y} [/math]. Числа [math] s_x [/math] и [math] s_y [/math] называются коэффициентами масштабирования.
[math] S_{s_x, s_y} = \left(\begin{array}{ccc}
s_x & 0 & 0\\
0 & s_y & 0\\
0 & 0 & 1
\end{array}\right) [/math]
Пример
Задача: Найдите новые координаты точки [math] (3, 5) [/math] после масштабирования по оси [math] O_x [/math] с коэффициентом 2 (по оси [math] O_y [/math] масштаб остаётся таким же).
Решение: [math] S_{2, 1} (\left(\begin{array}{c}
3\\
5\\
1
\end{array}\right)) =
[/math]
[math]
\left(\begin{array}{ccc}
2 & 0 & 0\\
0 & 1 & 0\\
0 & 0 & 1
\end{array}\right) \cdot
[/math]
[math]
\left(\begin{array}{c}
3\\
5\\
1
\end{array}\right) =
[/math]
[math]
\left(\begin{array}{c}
2 \cdot 3\\
1 \cdot 5\\
1
\end{array}\right) =
[/math]
[math]
\left(\begin{array}{c}
6\\
5\\
1
\end{array}\right)
[/math]
Поворот относительно начала координат
Обозначается [math] R^\alpha [/math], где [math] \alpha [/math] — угол поворота.
Как обычно, [math] \alpha \gt 0 [/math] при повороте против часовой стрелки, и [math] \alpha \lt 0 [/math] при повороте по часовой стрелке.
[math] R^\alpha = \left(\begin{array}{ccc}
\cos \alpha & - \sin \alpha & 0\\
\sin \alpha & \cos \alpha & 0\\
0 & 0 & 1
\end{array}\right) [/math]
Пример
Задача: Найдите новые координаты точки [math] (5, 1) [/math] после поворота плоскости на [math] 90 [/math] °.
Решение: [math] R^{90} = \left(\begin{array}{ccc}
0 & -1 & 0\\
1 & 0 & 0\\
0 & 0 & 1
\end{array}\right)
[/math]
[math] R^{90} (\left(\begin{array}{cc}
5\\
1\\
1
\end{array}\right)) =
[/math]
[math]\left(\begin{array}{ccc}
0 & -1 & 0\\
1 & 0 & 0\\
0 & 0 & 1
\end{array}\right) \cdot
[/math]
[math] \left(\begin{array}{cc}
5\\
1\\
1
\end{array}\right) =
[/math]
[math] \left(\begin{array}{cc}
-1\\
5\\
1
\end{array}\right)
[/math]
Замечание
[math] R^{180} = \left(\begin{array}{ccc}
-1 & 0 & 0\\
0 & -1 & 0\\
0 & 0 & 1
\end{array}\right) [/math], то есть центральная симметрия относительно начала координат меняет координаты точки на противоположные.
Тождественное преобразование
Это преобразование, оставляющее все точки неподвижными.
Его матрица: [math] I = \left(\begin{array}{ccc}
1 & 0 & 0\\
0 & 1 & 0\\
0 & 0 & 1
\end{array}\right)
[/math]
Композиция преобразований
[math] (g \circ f) x = g (f (x)) [/math]
Задача: к точке [math] (3, 5) [/math] применили осевую симметрию относительно [math] O_x [/math], и затем применили параллельный перенос на [math] \overrightarrow{(2, 1)} [/math]. Какие новые координаты у точки?
Решение: обозначим нашу точку за [math] P [/math], новую точку за [math] P' [/math]
Посчитаем двумя способами.
1) [math] 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 [/math]
[math] (\left(\begin{array}{ccc}
1 & 0 & 0\\
0 & -1 & 0\\
0 & 0 & 1
\end{array}\right) \cdot [/math]
[math] \left(\begin{array}{c}
3\\
5\\
1
\end{array}\right)) = [/math]
[math] \left(\begin{array}{ccc}
1 & 0 & 2\\
0 & 1 & 1\\
0 & 0 & 1
\end{array}\right) \cdot [/math]
[math] \left(\begin{array}{c}
3\\
-5\\
1
\end{array}\right) = [/math]
[math] \left(\begin{array}{c}
5\\
-4\\
1
\end{array}\right) [/math]
2) Воспользуемся ассоциативностью умножения матриц (сочетательный закон)
[math] 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 [/math]
[math] (\left(\begin{array}{ccc}
1 & 0 & 0\\
0 & -1 & 0\\
0 & 0 & 1
\end{array}\right) \cdot [/math]
[math] \left(\begin{array}{c}
3\\
5\\
1
\end{array}\right)) = [/math]
[math] (\left(\begin{array}{ccc}
1 & 0 & 2\\
0 & 1 & 1\\
0 & 0 & 1
\end{array}\right) \cdot [/math]
[math] \left(\begin{array}{ccc}
1 & 0 & 0\\
0 & -1 & 0\\
0 & 0 & 1
\end{array}\right)) \cdot [/math]
[math] \left(\begin{array}{c}
3\\
5\\
1
\end{array}\right) = [/math]
[math] \left(\begin{array}{ccc}
1 & 0 & 2\\
0 & -1 & 1\\
0 & 0 & 1
\end{array}\right) \cdot [/math]
[math] \left(\begin{array}{c}
3\\
5\\
1
\end{array}\right) = [/math]
[math] \left(\begin{array}{c}
5\\
-4\\
1
\end{array}\right) [/math]
Заметим, что [math] \left(\begin{array}{ccc}
1 & 0 & 2\\
0 & -1 & 1\\
0 & 0 & 1
\end{array}\right) [/math] — тоже какая-то матрица преобразования, в данном случае "осевая симметрия относительно [math] O_x [/math], с последующим параллельным переносом на [math] \overrightarrow{(2, 1)} [/math]"
Действительно, [math] P' = S_{1, -1}(T_{\overrightarrow{(2, 1)}}(P)) = (S_{1, -1} \circ T_{\overrightarrow{(2, 1)}}) P [/math]
Тогда матрица для [math] (S_{1, -1} \circ T_{\overrightarrow{(2, 1)}}) [/math] будет [math] \left(\begin{array}{ccc}
1 & 0 & 2\\
0 & -1 & 1\\
0 & 0 & 1
\end{array}\right) [/math].
Получается, при композиции преобразований их матрицы перемножаются.