ВУЗ:
Составители:
Рубрика:
17
GLubyte Bit_Map[]= {
0xff,0xff,0xff,0xff,0x01,0x01,0x01,0x01,
0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,
… (для экономии места - пропущены шесть одинаковых наборов)
0xff,0xff,0xff,0xff,0x01,0x01,0x01,0x01,
0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01 };
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0); //Задаем белый цвет
glEnable(GL_POLYGON_STIPPLE); //Включаем шаблон
glPolygonStipple(Bit_Map); //Определяем шаблон
glBegin(GL_POLYGON); //Рисуем полигон
glVertex2i(10, 10);
glVertex2i(30, 60);
glVertex2i(100, 70);
glVertex2i(80, 20);
glEnd( );
glDisable(GL_POLYGON_STIPPLE); //Выключаем шаблон
}
5.7 Воспроизведение битовых массивов
В OpenGL имеется возможность рисовать растровые изображения на основании одномерного би-
тового массива. Там, где стоит 1 – пиксель будет нарисован, а там, где появляется 0 – пиксель нарисо-
ван не будет. Битовый массив при выводе разбивается на строки, которые, в свою очередь, набираются
в высоту изображения. Для этого используется команда
void glBitmap (GLsizei width, GLsizei height,
GLfloat xorig, GLfloat yorig,
GLfloat xmove, GLfloat ymove,
const GLubyte *bitmap)
Параметры width и height задают в пикселях ширину и высоту точечного рисунка, представленного
в виде битового массива, xorig и yorig уточняют адрес левого нижнего угла точечного изображения в
плоскости экрана по формулам x
окн
= x
тек
– xorig и y
окн
= y
тек
– yxorig, где x
окн
и y
окн
оконные координаты;
x
тек
и y
тек
текущие координаты растровой позиции, задаваемые командой glRasterPos*(). Параметры
xmov и ymov показывают на сколько изменится текущая позиция растра после вывода битового изобра-
жения. Переменная bitmap указывает на адрес в оперативной памяти компьютера, начиная с которого
хранится битовый образ.
Перед тем, как рассмотреть несколько примеров использования команды glBitmap() необходимо
разобраться как в OpenGL задаются координаты текущей точки растра. Для установки оконных коорди-
нат используется команда
void glRasterPos[234][s I f d](GLtype coords)
void glRasterPos[234][s I f d]v(GLtype coords)
где cords – координаты текущей позиции растра.
По умолчанию текущая позиция растра установлена по координатам (0, 0, 0, 1).
Кроме этого, для успешной работы с командой glBitmap() требуется устанавливать режим хранения
пиксель в памяти. А это нам обеспечит команда
void glPixelStore[f i](GLenum pname, GLtype param)
Параметр pname задает символьную константу, указывающую на определенный устанавливаемый
параметр, а param – конкретное значение для данного параметра. Рассмотрим возможные символьные
константы для параметра pname:
Pname Значение param
Страницы
- « первая
- ‹ предыдущая
- …
- 13
- 14
- 15
- 16
- 17
- …
- следующая ›
- последняя »