Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kompyuternaya_grafika.doc
Скачиваний:
16
Добавлен:
07.09.2019
Размер:
674.3 Кб
Скачать

Преобразование прямых линий

Линия задана 2 векторами

Векторы положения точек А и В равны [0 1] и [2 3]

Матрица преобразования

T = [1 2] (3.8)

[3 1]

Получим:

AT = [0 1] [1 2] = [3 1] = A* (3.9)

[3 1]

BT = [2 3] [1 2] = [11 7] = B* (3.10)

[3 1]

Альтернативное представление линии AB

L = [0 1]

[2 3]

После этого умножение матрицы L на Т даст

LT = [0 1] [1 2] = [3 1] = L* (3.11)

[2 3] [3 1] = [11 7]

Операция сдвига увеличила длину линии и изменила ее положение.

Вращение.

Рассмотрим плоский треугольник ABC с координатами ((3, -1), (4, 1), (2, 1)).

Осуществим поворот на 90° против часовой стрелки

Получим

[3 -1] [ 0 1] [ 1 3] (3.12)

[4 1] [-1 0] = [-1 4]

[2 1] [-1 2]

В результате получим треугольник А*В*С*. Поворот на 180° осуществляется с помощью матрицы

[-1 0]

[ 0 -1]

поворот на 270 вокруг начала координат - с помощью матрицы

[0 -1]

[1 0]

Отображение.

Отображение определяется поворотом на 180° вокруг оси, лежащей в плоскости ху.

1) Вращение около линии у=x происходит при использовании матрицы

[0 1]

[1 0]

Новые выражения определяются соотношением

[8 1] [0 1] [1 8] (3.13)

[7 3] [1 0] = [3 7]

[6 2] [2 6]

2) Вращение вокруг у = 0 получается при использовании матрицы

[1 0]

[0 -1]

Новые вершины определяются соотношением:

[8 1] [1 0] [8 -1]

[7 3] [0 -1] = [7 3]

[6 2] [6 2]

Изменение масштаба.

Изменение масштаба определяется значением 2-х членов основной диагонали матрицы

Если используем матрицу: Увеличение в 2 раза

[2 0]

[0 2]

Если значения членов не равны, то имеет место искажение

Треугольник АВС преобразован с помощью матрицы

[2 0]

[0 2]

Треугольник DEF преобразован с помощью матрицы

[3 0]

[0 2] Искажение

Двумерное смещение и однородные координаты.

Введем третью компоненту в векторы точек [x y] и [x* y*] - [x y 1] и [x* y* 1 ].

Матрица преобразования выглядит след. образом:

[1 0]

[0 1]

[m n]

Таким образом,

[1 0]

[x y 1][0 1] = [x + m, y + n] = [x* y*] (3.14)

[m n]

Константы m, n вызывают смещение x* и у* относительно x и у, матрица 3х2 не квадратная - она не имеет обратной матрицы.

Дополним матрицу преобразования до квадратной

[1 0 0]

[0 1 0] (3.15)

[m n 1]

Третья компонента не изменяется.

Однородные координаты. Операции в них

Любая система координат, в которой представление точки в двухмерном (трехмерном) пространстве дается при помощи трех (четырех) координат (Р1 Р2Р3Р4), называется системой однородных координат. Для n-мерного пространства число однородных координат должно быть n+1. Теперь сложные преобразования можно представить, используя произведения матриц. Применение однородных координат в общем случае дает возможность избегать аномалий, возникающих при работе с декартовыми координатами.

Операция cмещения

В представление точки введена дополнительная координата, в результате третья компонента не изменилась . Константа переноса не зависит от системы координат от х или у.

В случае выхода рисунка за сечение н=1 рисунок возвращается принудительно в данное сечение, чтобы были возможны следующие операции:

- нормализация однородных координат.

Общий вид преобразования

Операция масштабирования

Общее полное масштабирование

s<1 увеличение; s>1 уменьшение.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]