Учебное пособие / Метематические основы машинной графики / exilim / 1.4.asp-ThemeID=1
.htmДвумерные преобразования - 1.4. Поворот A.l:link { text-decoration: none; font-size: 8pt; color: 666666; } A.l:hover { text-decoration: none; font-size: 8pt; color: 666666; } A.l:active { text-decoration: none; font-size: 8pt; color: 666666; } A.l:visited { text-decoration: none; font-size: 8pt; color: 666666; } A.std:link { text-decoration: none; font-size: 11pt; font-weight: bold; color: 8E5717; } A.std:hover { text-decoration: none; font-size: 11pt; font-weight: bold; color: 7F0000; } A.std:active { text-decoration: none; font-size: 11pt; font-weight: bold; color: 8E5717; } A.std:visited { text-decoration: none; font-size: 11pt; font-weight: bold; color: 8E5717; } A.li:link { text-decoration: none; font-size: 10pt; font-weight: bold; color: 666666; } A.li:hover { text-decoration: none; font-size: 10pt; font-weight: bold; color: 666666; } A.li:active { text-decoration: none; font-size: 10pt; font-weight: bold; color: 666666; } A.li:visited { text-decoration: none; font-size: 10pt; font-weight: bold; color: 666666; } A.lil:link { text-decoration: none; font-size: 11pt; color: 666666; } A.lil:hover { text-decoration: none; font-size: 11pt; color: 7F0000; } A.lil:active { text-decoration: none; font-size: 11pt; color: 666666; } A.lil:visited { text-decoration: none; font-size: 11pt; color: 666666; } Алгоритмические
основы Математические
основы Flash 5 CorelDraw 10 3D Studio Max3 [программа] [тесты] [лабораторные] [вопросы] [литература]
1. Двумерные преобразования
1.4. Поворот Рассмотрим треугольник ABC (рис.1.2) и с помощью следующего преобразования повернем его на 90° против часовой стрелки относительно начала координат [T] = 0 1
-1 0 Если использовать матрицу (3 х 2), состоящую из координат x и y вершин треугольника, то можно записать 3 -1
4 1
2 1 0 1
-1 0 = 3 -1
4 1
2 1 что является координатами результирующего треугольника A*B*C*. Поворот нв 180° относительно начала координат достигается путем следующего преобразования [T] = -1 0
0 -1 а на 270° относительно начала координат - преобразованием [T] = 0 -1
1 0 Разумеется, что матрица тождественного преобразования [T] = 1 0
0 1 соответствует повороту вокруг начала координат на 0° или на 360°. Как осуществить поворот вокруг точки начала координат на произвольный угол θ? Для ответа на этот вопрос рассмотрим вектор положения от начала координат до точки Р (рис. 1.3). Обозначим r - длину вектора, а φ - угол между вектором и осью х. Вектор положения поворачивается вокруг начала координат на угол θ и попадает в точку Р*. Записав векторы положений для Р и Р*, получаем: Р = [х у] = [r cosφ r sinφ] и Р* = [x* у*] = [r соs(θ + φ) r sin(θ + φ]. Используя формулу для cos суммы углов, перепишем выражение для Р* следующим образом Р* = [x* у*] = [r(cosφcosθ - sinφsinθ) r(соsφsinθ + sinφcosθ)].
Используя определения х и у, можно переписать Р* как Р* = [x* у*] = [x cosθ - y sinθ x sinθ + y cosθ]. Таким образом, преобразованная точка имеет координаты x* = x cosθ - y sinθ
y* = x sinθ + y cosθ. Или в матричном виде [X*] = [X][T] = [x* y*] = [x y] cosθ sinθ
-sinθ cosθ Итак, преобразование поворота вокруг точки начала координат на произвольный угол θ задается матрицей [T] = cosθ sinθ
-sinθ cosθ назад | содержание | вперед © ОСУ АВТФ