г = 0,...,7 и j = 0.....7. Цвет должен быть сделан чередующимся между (г,, gv 6,) и (r2, g2, b2) посредством следующего кода:

if((i + j»2 =-0) // if i + j is even // если i + j четное

glColor3f( rl. gl. Ы): else

glColor3f(r2. g2. b2);

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

Напишите функции drawRectangleCenterO и drawRectangleCornerSizeO, передающие эти альтернативные параметры, и нарисуйте прямоугольник с помощью функции glRectiO.

2.3.3. Различные форматные соотношения Напишите подпрограмму, рисующую закрашенный прямоугольник с форматным соотношением R. Пусть дисплей имеет пространство рисования 400 на 400. Выберите размер вашего прямоугольника наибольшим из всех возможных. Это значит, что при R > 1 прямоугольник заполняет все пространство рисования, в то время как при R < 1 он вытянут сверху вниз.

2.3.4. Рисование параметризованного домика Добавьте деталей в функцию parametrizedHouseO из листинга 2.11 - так, чтобы дверь, окно и труба рисовались в тех же пропорциях при заданных величинах height и width. Выберите приятные для глаз размеры и положения для различных форм.

2.3.5. Масштабирование и позиционирование фигуры с помощью параметров Напишите функцию void drawDiamondCGLintPoint center, int d), рисующую простой ромб, изображенный на рис. 2.18, размером d с центром в center. Используйте эту функцию для рисования «шквала» ромбов, как предлагается на рис. 2.19.

Глава 2. Начальная стадия: рисование фигур

Френсис Хилл

2.3.5. Закрашивание полигонов Мы уже умеем рисовать в OpenGL незакрашенные полигоны, а также выровненные прямоугольники, заполненные одним сплошным цветом. Однако OpenGL поддерживает заполнение цветом или узором полигонов и более общего вида. Ограничение только одно - полигоны должны быть выпуклыми (convex).


⇐ Предыдущая| |Следующая ⇒