Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КОМП.ГРАФ.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
305 Кб
Скачать
☆

Однородные координаты и матричное представление двумерных преобразований

Преобразования переноса, масштабирования и поворота в матричной форме

записываются в виде

К сожалению, перенос реализуется отдельно (с помощью сложения) от

масштабирования и поворота (с помощью умножения). Хотелось бы представить их таким

способом, чтобы все эти три элементарных преобразования можно было легко объединять

вместе. Ниже в этом разделе показано, как это можно сделать.

Если мы выразим точки в однородных координатах, то все три преобразования

можно реализовать с помощью умножений. Однородные координаты были введены в

геометрии и впоследствии использованы в графике. С однородными координатами и

преобразованиями над ними работают многие пакеты графических подпрограмм и

некоторые дисплейные процессоры. В одних случаях эти координаты используются

прикладной программой непосредственно при задании параметров для графического

пакета, в других — применяются лишь внутри самого пакета и недоступны для

программиста.

В однородных координатах точка Р (х, у) записывается как P(W∙ x, W ∙ y, W) для

любого масштабного множителя W≠0. При этом если для точки задано ее представление в

однородных координатах Р(Х, Y, W), то можно найти ее двумерные декартовы координаты

как x=X/W и y=Y/W. В этой главе W всегда будет равно 1, поэтому операция деления не

требуется. Однородные координаты можно представить как вложение

промасштабированной с коэффициентом W двумерной плоскости в плоскость z=W (здесь

z = 1) в трехмерном пространстве.

Точки теперь описываются трехэлементными вектор-строками, поэтому матрицы

преобразований, на которые умножается вектор точки, чтобы получить другой вектор

точки, должны иметь размер 3x3. Уравнения переноса записываются в виде матрицы

преобразования однородных координат следующим образом:

Где

Что будет, если точку Ρ перенести в точку Р' на расстояние (Dx1, Dy1), а затем в Р" на расстояние (Dx2 Dy2). Интуитивно ожидаемый результат в этом случае представляет собой суммарный перенос на расстояние (Dx1+Dx2, Dy1+Dy2). Чтобы доказать это, запишем данные в виде

Теперь получим:

Матричное произведение Τ(Dx1, Dy1) ∙ T(Dx2, Dy2) есть

Действительно, результирующий перенос есть (Dx1+Dx2, Dy1+ Dy2). Матричное произведение в разных случаях называют объединением, соединением, конкатенацией и композицией матриц T(Dx1, Dy2) и T(Dx2, Dy2). В этой главе мы будем использовать термин композиция.

Уравнения масштабирования в матричной форме записываются в

виде

Определяя

имеем

Так же как последовательные переносы являются аддитивными, можно ожидать, что последовательные масштабирования будут мультипликативными. Если заданы

то получим:

Матричное произведение S(Sx1, Sy1)∙S(Sx2, Sy2) есть

Таким образом, масштабирования в самом деле мультипликативны. И, наконец, уравнения поворота можно представить в виде:

Полагая

Имеем