Эта команда рисует выровненный прямоугольник по двум заданным точкам. Кроме того, этот прямоугольник закрашивается текущим цветом. На рис. 2.15 показано, что рисуется при выполнении следующего кода:

glClearColord. 0.1.0.1.0.0.0):
// white background

// цвет фона белый

glClear(GL_COLOR_BUFFER_BIT);
// clear the window

// очищаем окно

glColor3f(0.6.0.6.0.6):
// bright gray

// светло-серый цвет

glRecti(20.20.100.70):
glColor3f(0.2.0.2.0.2);
// dark gray

// темно-серый цвет

glRecti(70. 50. 150. 130):
glFlushO:

Отметим, что второй прямоугольник «перекрывает» первый. Другие режимы рисования мы будем изучать в главе 10.

Два следующих примера показаны на рис. 2.16. Рисунок 2.16, а изображает «шквал» выбранных случайным образом, выровненных прямоугольников, которые можно начертить с помощью такого кода1:

void drawFlurry(int num. int numColors. int Width, int Height) // draw num random rectangles in a Width // by Height rectangle

// рисуем num случайных прямоугольников размером

// не больше чем Width на Height

{
for (int i - 0: i < num: i++) {

GLint xl = random(Width): // place corner randomly // помещаем угол случайным образом

GLint yl = random(Height):

GLint x2 = random(Width): // pick the size so it fits // выбираем подходящий размер

GLint y2 = random(Height):
GLfloat lev = random(10)/10.0: // random value, in range 0 to 1

' Напомним из примера 2.3.2: random(N) возвращает случайно выбранную величину между 0 и N-1.

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

// случайная величина в диапазоне от 0 до 1

glColor3f(lev,lev.lev): // set the gray level

// устанавливаем уровень яркости серого цвета

glRecti(xi. yl. х2. у2): // draw the rectangle // рисуем прямоугольник

}
glFlushO;
}
Случайный «шквал» прямоугольников (<э); шахматная доска (5)

Рис. 2.16. Случайный «шквал» прямоугольников (<э); шахматная доска (5)

Рисунок 2.16, б представляет собой знакомую шахматную доску с чередующимися оттенками серого цвета. В практическом упражнении 2.3.1 вам предлагается запрограммировать этот рисунок.

2.3.4. Форматное соотношение выровненного прямоугольника


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