Чем характеризуются аффинные преобразования? Какие аффинные преобразования составляют частные случаи? Как они используются для организации движения объектов изображений?



В компьютерной графике чаще всего используют аффинную и декартовую систему координат. Это прямоугольная координатная система, в которой выбирается точка О - начало координат и два приложенных к ней неколлинеарных единичных вектора ex и ey, которые задают оси координат. Если единичные отрезки на осях не равны, система называется аффинной, если равны и угол между осями координат прямой - прямоугольной декартовой.

Однородным представлением n-мерного объекта является его представление в (n+1)-мерном пространстве, полученное добавлением еще одной координаты - скалярного множителя. При решении задач компьютерной графики однородные координаты обычно вводятся так: произвольной точке М (x, y) на плоскости ставится в соответствие точка M (x, y, 1) в пространстве. Если нам необходимо преобразовать точку на плоскости с координатами (x, y) в другую точку то задача сводится к поиску новых координат для этой точки - (x’, y’). В случае аффинных преобразований такой поиск сведется к решению уравнений

где a, b, c, d, m, n - произвольные числа, причем:

В случае, когда m и n не равны нулю, для представления преобразования в матричной форме нужно исходные и преобразованные координаты точки записать в однородных координатах (x, y, 1) и (x’, y’, 1).

Тогда в матричной форме общий вид преобразования будет следующим

Наибольшее распространение получили частные случаи аффинных преобразований:

· Единичное преобразование. Единичная матрица оставляет точку неподвижной.

· Сдвиг или плоскопараллельный перенос. Матрица переводит точку на m единиц вдоль оси x и на n –вдоль оси y.

· Вращение вокруг начала координат. Его матрица осуществляет поворот точки объекта на угол g против часовой стрелки Вращение вокруг произвольного центра осуществляет поворот вокруг точки (m, n) на угол g против часовой стрелки. Преобразование выполняется как последовательность трех элементарных:

o -сдвиг центра вращения (m, n) в начало координат с помощью матрицы сдвига

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

o -сдвиг точки (m, n) в исходное положение, используя матрицу сдвига

· Симметрия относительно оси, проходящей через начало координат. При этом, если угол между осью симметрии и осью Ох = w, то угол g=2*w.

· Масштабирование – увеличение (уменьшение размеров изображения) - в общем случае изменяет форму объекта. Назначается точка, относительно которой производится преобразование.где kx, ky - коэффициенты искажения по осям Ox, Oy соответственно. При kx=ky=k осуществляется преобразование подобия, при kx != ky изображение искажается. Изображение увеличивается при k > 1 и уменьшается при k < 1.

· Масштабирование относительно произвольной точки с координатами (m, n)

Матрица любого аффинного преобразования может быть получена умножением соответствующих рассмотренных здесь простых матриц. Порядок умножения имеет значение, поэтому выполнять его надо в определенной логической последовательности.

Если координаты точек объекта представлены вектором - столбцом, а не вектором - строкой, соответствующая матрица для преобразований должна быть транспонирована. Для возвращения к исходному состоянию следует использовать матрицу обратную той, что использовалась при преобразовании.

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

· лучше умножение на результирующую матрицу, чем последовательность умножений

· лучше масштабировать, а потом поворачивать, чем поворачивать, а затем масштабировать

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

· для того, чтобы движение казалось непрерывным и плавным, следует выводить кадры достаточно быстро (30-60 мсек) и координаты каждой точки преобразовывать быстрее.


Дата добавления: 2018-04-04; просмотров: 494; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!