Матрица преобразования — различия между версиями
Martoon (обсуждение | вклад) |
м (rollbackEdits.php mass rollback) |
||
(не показано 9 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
+ | Будем рассматривать двумерный случай. | ||
+ | |||
+ | Матрица преобразования - это некоторая матрица <tex> 3 \times 3 </tex>. Мы будем рассматривать матрицы вида | ||
+ | <tex> \left(\begin{array}{ccc} | ||
+ | a & b & t_x\\ | ||
+ | c & d & t_y\\ | ||
+ | 0 & 0 & 1 | ||
+ | \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} | ||
+ | x\\ | ||
+ | y\\ | ||
+ | 1 | ||
+ | \end{array}\right) = | ||
+ | </tex> | ||
+ | <tex> \left(\begin{array}{ccc} | ||
+ | a & b & t_x\\ | ||
+ | c & d & t_y\\ | ||
+ | 0 & 0 & 1 | ||
+ | \end{array}\right) \cdot | ||
+ | </tex> | ||
+ | <tex> \left(\begin{array}{c} | ||
+ | x\\ | ||
+ | y\\ | ||
+ | 1 | ||
+ | \end{array}\right) = | ||
+ | </tex> | ||
+ | <tex> \left(\begin{array}{c} | ||
+ | a x + b y + t_x\\ | ||
+ | c x + d y + t_y\\ | ||
+ | 1 | ||
+ | \end{array}\right) | ||
+ | </tex>. | ||
+ | |||
+ | То есть новые координаты как-то линейно зависят от старых. | ||
+ | |||
+ | Рассмотрим частные случаи преобразований. | ||
+ | |||
Строка 4: | Строка 51: | ||
=== Параллельный перенос === | === Параллельный перенос === | ||
− | Задаёт преобразование <tex> x \rightarrow x + | + | Задаёт преобразование <tex> x \rightarrow x + t_x ,\ y \rightarrow y + t_y </tex>. |
− | Обозначается <tex> T_{\overrightarrow v} </tex>, где <tex> \overrightarrow v = ( | + | Обозначается <tex> T_{\overrightarrow v} </tex>, где <tex> \overrightarrow v = (t_x, t_y) </tex> {{---}} вектор параллельного переноса. |
− | <tex> T_{( | + | <tex> T_{(t_x, t_y)} = \left(\begin{array}{ccc} |
− | 1 & 0 & | + | 1 & 0 & t_x\\ |
− | 0 & 1 & | + | 0 & 1 & t_y\\ |
0 & 0 & 1 | 0 & 0 & 1 | ||
\end{array}\right) </tex> | \end{array}\right) </tex> | ||
Строка 53: | Строка 100: | ||
Вполне ожидаемый ответ. | Вполне ожидаемый ответ. | ||
+ | |||
+ | |||
+ | === Масштабирование вдоль осей === | ||
+ | |||
+ | Задаёт преобразование <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> | ||
+ | |||
=== Поворот относительно начала координат === | === Поворот относительно начала координат === | ||
Строка 99: | Строка 199: | ||
\end{array}\right) | \end{array}\right) | ||
</tex> | </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>. | ||
+ | |||
+ | Получается, при композиции преобразований их матрицы перемножаются. |
Текущая версия на 19:21, 4 сентября 2022
Будем рассматривать двумерный случай.
Матрица преобразования - это некоторая матрица
. Мы будем рассматривать матрицы видаДопустим есть какое-то преобразование
, и (к точке применили преобразование и получили точку ).Тогда матрица преобразования
, умноженная на однородные координаты , даёт однородные координаты .В каком-то смысле, любое линейное преобразование одновременно является матрицей, так же как точка — это набор координат.
Посмотрим как меняются координаты при преобразовании.
.
То есть новые координаты как-то линейно зависят от старых.
Рассмотрим частные случаи преобразований.
Базовые преобразования
Параллельный перенос
Задаёт преобразование
.Обозначается
, где — вектор параллельного переноса.
Пример Задача: Найдите новые координаты точки
после параллельного переноса плоскости на вектор .Решение:
Вполне ожидаемый ответ.
Масштабирование вдоль осей
Задаёт преобразование
.Будем обозначать как
. Числа и называются коэффициентами масштабирования.
Пример
Задача: Найдите новые координаты точки
после масштабирования по оси с коэффициентом 2 (по оси масштаб остаётся таким же).Решение:
Поворот относительно начала координат
Обозначается
, где — угол поворота. Как обычно, при повороте против часовой стрелки, и при повороте по часовой стрелке.
Пример Задача: Найдите новые координаты точки
после поворота плоскости на °.Решение:
Замечание
, то есть центральная симметрия относительно начала координат меняет координаты точки на противоположные.
Тождественное преобразование
Это преобразование, оставляющее все точки неподвижными.
Его матрица:
Композиция преобразований
Задача: к точке применили осевую симметрию относительно , и затем применили параллельный перенос на . Какие новые координаты у точки?
Решение: обозначим нашу точку за
, новую точку заПосчитаем двумя способами.
1)
2) Воспользуемся ассоциативностью умножения матриц (сочетательный закон)
Заметим, что
— тоже какая-то матрица преобразования, в данном случае "осевая симметрия относительно , с последующим параллельным переносом на "Действительно,
Тогда матрица для
будет .Получается, при композиции преобразований их матрицы перемножаются.