Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Конспект лекций (полный)

.pdf
Скачиваний:
64
Добавлен:
13.11.2013
Размер:
1.08 Mб
Скачать

Общую матрицу 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.

Изометрическая

Все три оси во время проецирования

 

 

сокращены.

 

 

 

Пример для изометрической проекции матрицы преобразований: