// вталкиваем в стек, чтобы сюда можно было вернуться cvs.translate2D(W. H):

5.5. Использование аффинных преобразований в программах

// position for the first motif // положение первого мотива forCrow - 0; row < 3: row++) // draw each row // рисуем каждый ряд {

cvs.pushCTO:

for (col - 0: col < 4: col++) // draw the next row of motifs // рисуем очередной ряд мотивов

{
motifO:

cvs.translate2D(L. 0): // move to the right // перемещаемся вправо }

cvs.popCTO; // back to the start of this row // обратно к началу этого ряда

cvs.translate2D(0. D): // move up to the next row // перемещаемся вверх на следующий ряд }

cvs.popCTO:
// back to where we started

// назад к тому месту, откуда мы начинали

а б Рис. 5.43. Мозаика, выложенная одним мотивом: а) мотив; б) мозаика Пример 5.5.6. Использование преобразований моделирования в программе автоматизированного проектирования (CAD)

В некоторых программах требуется рисовать много экземпляров нескольких форм. На рис. 5.44 показан пример программы автоматизированного проектирования (computer-aided design - CAD), в которой анализируется схема соединения цифровых логических вентилей. Пользователь может

Преобразования объектов

конструировать схему посредством «выбора и размещения» (^picking and placing*) различных вентилей, возможно, разного размера и разной ориентации, в нужные места рабочей зоны. Каждое изображение объекта на этой сцене называется экземпляром (instance) данного объекта. Определение объекта дается один раз, в системе координат, удобной для работы с формой данного конкретного объекта, и носит название локальной системы координат (master coordinate system). Преобразование, которое переносит объект иэ его локальной системы координат в мировые координаты для создания экземпляра, часто называют преобразованием моделирования (modeling transformation).

Создание экземпляров в приложении с «выбором и размещением»

Рис 5.44. Создание экземпляров в приложении с «выбором и размещением» На рис. 5.45 показаны два логических вентиля, каждый из которых определен один раз в своей собственной локальной системе координат. При создании пользователем каждого экземпляра одного из этих вентилей генерируется соответствующее преобразование моделирования, которое ориентирует и позиционирует данный рисунок. Это преобразование может быть сохранено просто как набор параметров, например"opengl1_345.html">⇐ Предыдущая| |Следующая ⇒