МОДЕЛИРОВАНИЕ ДВИЖЕНИЯ ОБЪЕКТОВ В ПЛОСКОСТИ. КОМПОЗИЦИЯ ДВУМЕРНЫХ АФФИННЫХ ПРЕОБРАЗОВАНИЙ. МОДЕЛИ АНИМАЦИИ

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

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

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

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

В компьютерной графике все, что связано с построением и обработкой изображений в плоскости, принято называть 2О-графикой (2-Dimensional). Будем рассматривать методы построения изображения движущихся объектов в 2О-графике. Введем прямоугольную систему координат, как показано на рис. 2.1 С^>. Выберем точку объекта М с координатами (х, у) и будем следить за движением этой точки в плоскости ху. Через некоторое время эта точка займет в плоскости некоторое новое положение М* с новыми координатами (х*,/).

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

Движение точки /И(х, у)

Рис. 2.1. Движение точки /И(х, у)

Совершим над координатами точки Л/следующее линейное преобразование:

х* = осх + Ву + Л,

(2.1) у* = ух + 5у+ ц.

В результате получим другую точку Л/* с координатами (х*, у*). Преобразование (2.1) можно рассматривать как математическое описание движения точки М из одного места в другое

Будем предполагать, что определитель, составленный из коэффициентов а, р, у, 5, отличен от нуля

Тогда условие (2.2) означает, что существует обратное преобразование

х = ах + Ву*+Х.,

- * _ (2-3)

у = ух* + 8у* +ц.

Преобразование (2.3) можно рассматривать как математическое описание обратного движения точки М

М* ^М.

Линейное преобразование (2.1) вместе с условием (2.2) называется аффинным преобразованием. В математической литературе аффинным преобразованием называют взаимно однозначное отображение плоскости на себя, при котором трем точкам на одной прямой соответствуют три точки, тоже лежащие на одной прямой (рис. 2.2 С^>).

Аффинное преобразование. Изменение положения трех точек, лежащих на одной прямой

Рис. 2.2. Аффинное преобразование. Изменение положения трех точек, лежащих на одной прямой

Легко проверить, что линейное преобразование (2.1) отвечает указанному свойству аффинного преобразования. Кроме того, аффинное преобразование переводит скрещивающиеся прямые в скрещивающиеся, а параллельные линии в параллельные (рис. 2.3 СС2>).

Аффинное преобразование. Изменение расположения параллельных и скрещивающихся линий

Рис. 2.3. Аффинное преобразование. Изменение расположения параллельных и скрещивающихся линий

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >