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

Преобразование координат.

Пусть задана примерная схема координат в базисе (k1, k2…kn), описывающая положение точки в пространстве с помощью числовых значений. В компьютерной графике чаще всего используется двухмерная n=2, и трехмерная n=3 система координат. Если задать другую n-мерную схему координат в базисе m1,m2…mn и поставить задачу определения координат в новой схеме, зная координаты старой, то решение можно записать в следующем виде:

m1=f1 (k1, k2…kn)

m2=f2 (k1, k2…kn)

mn=fn (k1, k2…kn)

где fi—функция пересчета i-той координаты,

а аргументы—это координаты в системе координат ki.

Можно представить обратную задачу, т.е. по известным координатам m1,m2…mn определить координаты (k1, k2…kn). Решение обратной задачи выглядит следующим образом:

k1=F1 (m1, m2…mN)

k2=F1 (m1, m2…mN)

kn=Fn (m1, m2…mN)

где Fi—функция обратного преобразования.

В случае, когда размерности систем координат совпадают, осуществлять однозначное преобразование координат невозможно. Например, по 2-мерным экранным координатам нельзя без дополнительных условий однозначно определить трехмерные координаты отображаемых объектов. Если размерности систем координат совпадают, то также существуют те случаи, когда нельзя однозначно решить прямую ил обратную задачу.

Преобразование координат классифицируют:

  1. По системам координат. Например: преобразование полярной СК в прямоугольную.

  2. По виду функции преобразования. Различают линейные и нелинейные преобразования.

Если при всех i=1,2…n функции fi линейна относительно своих аргументов k1, k2…kn, т.е.

f1=ai1*k1=ai2k2+…+ain*kn+ain+1

где aij—const, то также преобразования называют линейными.

А если размерности систем координат совпадают то афинными.

Если хотя бы для одного i функция fi не линейна относительно k1, k2…kn, то тогда преобразование координат в целом не линейное.

Линейное преобразование наглядно записывается в матричной форме:

Здесь матрица коэффициентов aij умножается на матрицу столбец kj и в результате получается матрица столбец mj.

Аффинные преобразования на плоскости.

Афинные преобразования координат x,y описываются по формуле:

X=Ax+By+C

Y=Dx+Ey+F

где A,B,C…F—const .

Х,У—координаты в новой системе координат.

Обратное преобразование из Х,У в х,у также является афинными. Аффинное преобразование удобно записывать в матричном виде.

A,B,C…F—const образуют матрицу преобразований, которые будучи умноженными на столбец коэффициентов (х,у) дает матрицу столбец Х,У.

Однако, чтобы учесть const C и F необходимо перейти к так называемым однородным коэффициентам. Добавим в строку с единицами матрицу координат

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

а затем другое преобразование:

то эти преобразования можно записать следующим образом:

Вместо двух преобразований выполнить только одно, предварительно перемножив матрицы коэффициентов.

Рассмотрим частный случай аффинного преобразования:

  1. параллельный сдвиг координат:

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

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

Обратное преобразование:

Обратное преобразование в матричном виде:

  1. растяжение, сжатие осей координат

Обратное преобразование:

В матричном виде:

Коэффициенты kx, ky могут быть и отрицательными. Например, если kx=-1, то это соответствует зеркальному отражению относительно оси У.

  1. поворот

Обратное преобразование соответствует повороту Х,У на угол –α: