Научная статья на тему 'Аффинные преобразования объектов в компьютерной графике'

Аффинные преобразования объектов в компьютерной графике Текст научной статьи по специальности «Физика»

CC BY
7839
397
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Аффинные преобразования объектов в компьютерной графике»

УДК 004.932

Кудрина М.А., Мурзин А.В.

ФГБОУ ВПО "Самарский государственный аэрокосмический университет им. ак. С.П. Королева (национальный исследовательский университет)", Самара, Россия

АФФИННЫЕ ПРЕОБРАЗОВАНИЯ ОБЪЕКТОВ В КОМПЬЮТЕРНОЙ ГРАФИКЕ

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

Данная задача решается использованием аффинных преобразований (affine transformations) [1, 2] .

Аффинные преобразования могут быть очень полезны в следующих ситуациях:

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

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

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

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

J X = Ax + By + C, [7 = Dx + Ey + F,

где A, B, C, D, E, F - некие константы.

f X f A B c 1 f x 1

Преобразование (1) можно записать в матричной форме 7 = D E F y

J і0 0 1j l1 J

Аффинным преобразованиям может подвергаться как сама система координат, так и объекты на плоскости.

Если преобразование производится над системой координат, то значения (х, у) в выражении (1) интерпретируются как координаты точки в старой системе координат, а значения (Х, У) - координаты

точки в новой системе координат.

Преобразованиям могут подвергаться не только системы координат, но и объекты (фигуры). При преобразованиях объектов на плоскости за (x, у) примем координаты точки до преобразования, (X, Y) - новые координаты точки после преобразования.

В таблице 1 приведены матрицы основных типов аффинных преобразований систем координат и объектов на плоскости.

Таблица 1

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

Преобразования системы координат Преобразования объектов

Перемещение

f 1 0 -dx 1 f1 0 dx 1

0 1 -dy 0 1 dy

l001 j 10 0 1 j

Масштабирование

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

'УК 0 0^1 0 1/ky 0 l0 0 1J 'kx 0 0^ 0 ky 0 10 0 к

Поворот Положительный угол поворота дает поворот от оси х к оси у!

f cosf sinf 01 - sinf cosf 0 l 0 0 1J 'cosf - sinf 01 sin f cos f 0 i 0 01J

Сдвиги

f 1 -h 01 f 1 h 01

0 1 0 - сдвиг вдоль оси x 0 1 0 - сдвиг вдоль оси x

l0 0 1J l0 0 1 j

f1 0 0 f1 0 01

-g 1 0 - сдвиг вдоль оси y g 1 0 - сдвиг вдоль оси y

l0 0 1 l0 0 1J

На рис. 1 приведен пример действия каждого типа преобразования над объектом на плоскости в отдельности .

Аналогичные преобразования возможны и в трехмерном пространстве. Общий вид трехмерных аффинных преобразований координат:

а) исходное Сражение

б) перемещение

Y Y

в) масштабирование г) поворот

д) сдвиг

Рис. 1. Аффинные преобразования на плоскости f X = Ax + By + Cz + D,

I Y = Ex + Fy + Gz + H,

|z = Kx + Ly + Mz + N.

Матричная форма:

f X ^ f A B C D' f x 1

Y E F G H y

Z K L M N z

,1 ) ,0 0 0 1 , ,1)

В таблице 2 приведены матрицы основных типов трехмерных аффинных преобразований систем координат и объектов.

Таблица 2

Основные типы трехмерных аффинных преобразований систем координат и объектов

Преобразования системы координат 1 Преобразования объектов

Перемещение

f 10 0 -dx 1

0 10 -dy

0 0 1 -dz

0 0 0 1

f 1 0 0 dx 1

0 10 dy

0 0 1 dz 0 0 0 1

Масштабирование

1 К 0 0 01 f kx 0 0 01

0 1 kx 0 0 0 ky 0 0

0 0 1 kx 0 0 0 kz 0

0 0 0 1) 1 0 0 0 1)

Поворот

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

f 1 0 0 01 f1 0 0 01

0 cos# sin# 0 - поворот СК вокруг 0 cos# -sin# 0 - поворот объекта во

0 -sin# cos# 0 оси x на угол # 0 sin# cos# 0 круг оси x на угол #

10 0 0 і) 10 0 0 1)

f cos b 0 - sin b 01 f cos b 0 sinb 0

0 1 0 0 - поворот СК вокруг 0 1 0 0 - поворот объекта во

sin b 0 cos b 0 оси y на угол р - sinb 0 cos b 0 круг оси y на угол p

1 0 0 0 1 1 0 0 0 1,

cosy sin у 0 0Л

-sinу cosy 0 0 0 0 10

0 0 0 1,

- поворот СК вокруг оси z на угол у

cosy -sin У 0 0N

sin у cos у 0 0

0 0 1 0

0 0 0 1

- поворот объекта вокруг оси z на угол у

Сдвиги

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

f 1 0 0 0Л

-f 1 0 0 - пример трехмерного сдвига 0 0 10 0 0 0 1,

f 1 0 0 0Л

f 1 0 0 - пример трехмерного сдвига 0 0 10 0 0 0 1,

изо

Основные свойства аффинных преобразований:

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

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Любое преобразование точки относительно начала координат можно представить как обратное преобразование системы координат. Например, поворот точки на угол j относительно начала координат мож-

но рассматривать как поворот системы координат на угол -j.

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

Программа создания матриц аффинных преобразований

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

Название матрицы Поворот_________

Название матрицы I Перемещение

Название матрицы

[Перемещен

Название матрицы

[Сдвиг

Тип перобразоеания (•) Система координат О Объект

Тип леробразоаания (•) Система координат О Объект

Тип перобразования (•) Система координат О Объект

Тип перобразования

(•) Система координат О Объект

Угол поворота (в градусах)

Г~1 Не вычислять тригонометрические функции

Коэффициенты смещения По х (d_x):

Коэффициенты смещения

Пох(с1_х):

Ось сдвига ® X Oy

По У (d_y):

По у (d___у):

Величина сдвиге

Рис. 2. Создание матриц элементарных преобразований

На рис. 2 приведен фрагмент окна создания матриц элементарных преобразований. Для создания

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

После создания матрицы переносятся в область перемножения, где можно перемножить их в прямом и обратном порядке (см. рис. 3).

Рис. 3. Перемножение матриц

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

В программе также поддерживаются матрицы трехмерных аффинных преобразований размерностью 4x4 (см. рис. 4).

Рис. 5. Графический интерфейс пользователя

Графический интерфейс пользователя состоит из двух частей: песочницы и рабочей среды (см. рис. 5). Песочница представляет собой "банк" созданных матриц элементарных преобразований. Все матрицы из песочницы можно сохранить в файл, а потом загрузить из него. Затем созданные матрицы копируются в рабочую среду, где их упорядочивают и перемножают. Результирующую матрицу можно сохранять в песочнице.

Данная программа используется в учебном процессе в курсе "Компьютерная графика" [3] для прове-

дения лекционных занятий и лабораторных работ, а также для составления заданий контрольной работы "Аффинные преобразования" и создания аттестационных педагогических измерительных материалов [4, 5]. Программа позволяет автоматизировать процесс составления тестовых задач.

ЛИТЕРАТУРА

1. Порев В. Н. Компьютерная графика. - СПб.: БХВ-Петербург, 2002. - 432 с. : ил.

2. Хилл Ф. Open GL. Программирование компьютерной графики. Для профессионалов. - СПб.:Питер,

2002. - 1088с.:ил. ISBN 5-318-00219-6

3. Кудрина М.А., Кудрин К.А., Вытягов А.А., Ионов Д.О. Разработка системы дистанционного обучения для курса "Компьютерная графика" с помощью Moodle: Труды международного симпозиума Надежность и качество. 2010. Т. I. С. 165.

4. Кудрина М.А., Кудрин К.А., Дегтярева О.А. Аттестационный педагогический измерительный материал по курсу "Компьютерная графика"// Надежность и качество 2008. Труды межд. симпозиума. Пенза, 2008, С. 162-163.

5. Кудрина М.А. Использование аттестационно-педагогических измерительных материалов по курсу

"Компьютерная графика" в учебном процессе"//Образование - инвестиции в успех: Материалы науч.-

прак. конф., посвящ. 15-лет. казахст.-германс. учеб.центра "Андас". - Алматы: "Исламнур", 2009. С. 115-118 ISBN 9965-9981-5-9

i Надоели баннеры? Вы всегда можете отключить рекламу.