Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

KG / КГ_9глава

.doc
Скачиваний:
98
Добавлен:
26.05.2014
Размер:
475.65 Кб
Скачать

ГЛАВА 9

Пример анимации

Анимация — это создание иллюзии движения, изменения чего-то во време­ни. Для этого генерируется последовательность кадров путем моделирования развития во времени определенных процессов. В предыдущих главах в неко­торых примерах программ мы уже использовали такой способ показа, на­пример, обзор движущейся камерой неподвижных объектов (см. главу 8).

Морфингом (morphing) называются методы моделирования изменений формы объекта. Обычно стадии преобразования формы объекта определяют­ся с помощью множества опорных точек. Потом выполняется некоторая ин­терполяция и показ всех этапов трансформации [47].

9.1. Поверхность Безье

Рассмотрим пример "живой" поверхности Безье, задаваемой точками-ориен­тирами. Если плавно перемещать в пространстве эти точки-ориентиры, то поверхность Безье будет соответственно видоизменяться. Выберем кубиче­скую поверхность Безье.

Для описания изменения расположения точек-ориентиров используем про­странственные кубические кривые Безье, заданные в параметрической фор­ме. Параметром будет время (или номер кадра). Для описания формы куби­ческих кривых требуется четыре опорные точки.

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

Для упрощения программы поверхности рисуются симметрично по четырем

квадрантам.

Всего создается сто кадров. Номер кадра определяет значение параметра t от 0 до 1. Этот параметр используется для расчета текущих координат точки каждой из 16 кубических кривых Безье. Вдоль этих кривых скользят опорные точки-ориентиры поверхностей Безье (рис. 9.1). Каждая поверхность отобра­жается полигональной сеткой 10x10.

Результат работы программы изображен на рис. 9.2.

Рис. 9.1. Две трассы движения Рис. 9.2. Двенадцать сплайнов Безье.

Последний кадр

На рис. 9.3 отображена начальная форма и три промежуточные стадии разви­тия объекта.

Рис. 9.3. Четыре стадии изменения формы

9.2. Градиентное закрашивание

При разработке и тестировании функций пре­дыдущей программы почти случайно был по­лучен интересный рисунок— пример гради­ентного закрашивания поверхностей Безье (рис. 9.4 и на обложке книги).

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

Текст программы приведем только для тех функций, которые изменены. По­скольку метод Гуро здесь уже не используется, то функция MyPolygonGouraud переименована В MyPolygon, a MyLineHorGouraud — В MyLineHor. В теле функ­ции MyPolygon вычисляется цвет грани с помощью новой функции RefiectionCoior. В остальном текст программы идентичен тексту предыду­щей программы.

Соседние файлы в папке KG