
Конспект лекций (полный)
.pdf
Общую матрицу 2*2, которая осуществляет вращение фигуры относительно начала координат, можно получить из вращения единичного квадрата.
Как следует из рисунка точка В с координатами (1; 0) преобразуется в точку В* с координатами (cosθ; sinθ); точка D с координатами (0; 1) преобразуется в точку D* с координатами (-sinθ; cosθ).
Учитывая полученные преобразования, общую матрицу вращения можно записать как:
cosθ -sinθ
sinθ cosθ

Двухмерное смещение
Отметим, что в общей матрице 2*2 ввести константу переноса в общую структуру матрицы не представляется возможным.
Эту трудность можно устранить путем введения третьей компоненты для векторных точек.
XY
→
XY1
X *Y *
X *Y *1
В результате матрица преобразований превращается в размеры 3*2 и имеет вид:
1 0
0 1
m
n
Такая структура объясняется тем, что число столбцов матрицы, описывающих точку, должны равняться числу строк матрицы, выполняющих преобразование.
Преобразование будет выглядеть следующим образом:
XY1
10
*0 1 m n
= |
X |
+ m
Y + n =
X *Y *

Отсюда видно, что константы m и n вызывают смещение точки относительно точки с координатами (x; y), поскольку матрица 3*2 не является квадратной, следовательно, нельзя построить обратную матрицу. Эту трудность можно устранить, дополнив матрицу преобразований до квадратной.
Заметим, что третья компонента вектора положения точек не изменяет. Используя эту матрицу преобразований, получим:
X *Y *1
Т.о. вектор положений (x; y) около точек m и n может быть выполнен с помощью преобразования:
XYH
= XY1
*

Трехмерное преобразование и проекции
Введем трехмерные координаты. Точка (X, Y, Z, H) представляется в четырехмерном пространстве (x, y, z, 1).
Преобразование неоднородных координат (X, Y, Z, H) в однородные (x, y, z, 1) производится через матрицу Т.
(X, Y, Z, H) = (x, y, z, 1) * Т
Рассмотрим частные случаи для данного четырехмерного преобразования.

Трехмерное изменение масштаба
Частное изменение масштаба:
Данное преобразование производит частное изменение масштаба.
Общее изменение масштаба получается засчет использования четвертого диагонального элемента.
x * =
x s
,
y * =
y s
,
z * =
z s
.

Сдвиг
Недиагональные элементы левой верхней подматрицы 3*3 в общем матричном преобразовании 4*4 осуществляют сдвиг в трех измерениях и имеют вид:

Трехмерное вращение
Рассмотрим несколько частных случаев вращения.
При вращении вдоль оси X, размеры вдоль оси X не изменяются.
Т.о. матрица преобразований будет иметь нули в первой строке и столбце за исключением единицы на главной диагонали.
θ - угол вращения вокруг оси X
Вращение положительно по часовой стрелке, если смотреть вдоль оси вращения с начала координат.
Для выражения на угол φ около оси Y нули ставятся во второй строке и
столбце матрицы преобразования, за исключением единицы на главной диагонали.
Матрица примет вид:
cosφ 0 |
- sinφ 0 |
||
0 |
1 |
0 |
0 |
sinφ 0 |
cosφ |
0 |
|
0 |
0 |
0 |
1 |

Аналогична матрица преобразований на угол ψ около оси Z:
Т.к. вращение описывается умножением матриц, то трехмерное вращение не коммутативно, т.е. порядок умножения будет влиять на конечный результат.

Отображение в пространстве
Иногда требуется выполнить зеркальное отображение трехмерного объекта.
Рассмотрим частные случаи этого отображения.
Матрица преобразований плоскости XY будет иметь вид:
Дальнейшее преобразование (XZ и YZ) можно получить разными способами: путем вращения и отображения или просто отображением.
Для отображения YZ:
Для отображения XZ:

Аксонометрические проекции
Классификация общих аксонометрических проекций приведена в таблице:
Проекция |
Описание |
|
|
|
|
1. |
Ортогональная |
Матрица преобразований |
|
|
осуществляет только вращение, т.о. |
|
|
координаты осей остаются |
|
|
ортогональными во время |
|
|
проецирования. |
|
|
|
2. |
Диметрическая |
Две их трех осей во время |
|
|
проецирования одинаковы |
|
|
сокращены. |
|
|
|
3. |
Изометрическая |
Все три оси во время проецирования |
|
|
сокращены. |
|
|
|
Пример для изометрической проекции матрицы преобразований: