г = 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.3.5. Закрашивание полигонов Мы уже умеем рисовать в OpenGL незакрашенные полигоны, а также выровненные прямоугольники, заполненные одним сплошным цветом. Однако OpenGL поддерживает заполнение цветом или узором полигонов и более общего вида. Ограничение только одно - полигоны должны быть выпуклыми (convex).