Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Геом моделирование 2D объектов бис бис.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
772.31 Кб
Скачать
    1. Выбор цветовых решений

Выбор цветовых решений рисования объектов не относится к геометрии сцены, но для повышения наглядности картинки в процессе отладки программыбывает полезно раскрасить ее определенным образом. При создании графической сцены различают цвет фона (цвет закраски окна вывода) и цвет пера (цвет линий и закраски примитивов). По умолчанию цвет фона – черный, а цвет пера – белый, но их можно менять специальными командами. Цвет фона в OpenGL задается командой

glClearColor(R,G,B,A);

где R,G,B – доли красного, зеленого и синего основных цветов в цвете фона (лежат в диапазоне от 0 до 1), А – коэффициент прозрачности фона (0 – прозрачный, 1 – непрозрачный фон). Если использовать только нулевые и единичные значения интенсивности основных цветов, можно задать восемь ярких цветов фона в соответствии с таблицей 3.Пропорционально уменьшая значения интенсивности, можно сделать цвет фона менее насыщенным, например при R=G=B=0,5 получается серый цвет.

Таблица 3 – Набор цветов, полученный при использовании нулевых и единичных интенсивностей основных цветов

R

G

B

Цвет

0

0

0

Черный (black)

0

0

1

Синий (blue)

0

1

0

Зеленый (green)

0

1

1

Бирюзовый (cyan)

1

0

0

Красный (red)

1

0

1

Пурпурный (magenta)

1

1

0

Желтый (yellow)

1

1

1

Белый (white)

Окно вывода закрашивается заданным цветом командой

glClear(GL_COLOR_BUFFER_BIT); ,

котораязаносит в буфер цвета (буфер кадра) заданные коды цветояркости для всех пикселей окна.

Для задания цвета пера используется команда

glColor3f(R,G,B); .

В ней R,G,B – это тоже доли красного, зеленого и синего цветов, но теперь – в цвете геометрической фигуры. Эта команда устанавливает так называемый текущий цвет пера. Он применяется при рисовании всех объектов, описанных в программе (в скобках glBegin – glEnd) ниже установки этого цвета. В нужный момент текущий цвет пера меняется с помощью повторного применения команды glColor.Например, приведенный ниже фрагмент программы рисует на светло-бирюзовом фоне объект, состоящий из двух разноцветных примитивов: красного треугольника и зеленого четырехугольника.

glClearColor(0.0,0.5,0.5,1.0); //задание светло-бирюзового цвета фона

glClear(GL_COLOR_BUFFER_BIT);

glColor3f(1.0,0.0,0.0); //задание красного цвета пера

glBegin(GL_TRIANGLES);

glVertex2f(x1,y1);

glVertex2f(x2,y2);

glVertex2f(x3,y3);

glEnd();

glColor3f(0.0,1.0,0.0); //заданиезеленогоцветапера

glBegin(GL_QUADS);

glVertex2f(x4,y4);

glVertex2f(x5,y5);

glVertex2f(x6,y6);

glVertex2f(x7,y7);

glEnd();