}
/*...................-...........*/
void main(int argc, char **argv)
{
n=atoi(argv[l]); glutlnit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUTJDEPTH); glut!nitWindowSize(500, 500);

A.4. Рекурсивный алгоритм построения трехмерного узора Серпинского

glutCreateWindow("3D Gasket"); glutReshapeFunc(myReshape); glutDisplayFunc(display); glEnable(GL_DEPTH_TEST); glClearColor (1.0, 1.0, 1.0, 1.0); glutMainLoop();
}

/*-------Конец файла-------*/

A.5. Программа вычерчивания квадрата

/* Программа демонстрирует методику использования функций из библиотеки GLUT для взаимодействия с операционной системой управления окнами */

/* Программа открывает окно, очищает его - устанавливает черный цвет фона, а затем вычерчивает квадрат в том месте, где пользователь щелкнет левой кнопкой мыши. Щелчок правой кнопкой мыши завершает выполнение программы. При перемещении окна и изменении его размеров программа очищает окно. */

iinclude <GL/glut.h>

/* Глобальные переменные */

GLsizei wh = 500, ww = 500; /* исходные размеры окна */ GLfloat size =3.0; /* половина длины стороны квадрата */

/*-------------------............*/

void drawSquare(int х, int у) {

y=wh-y;
glColor3ub( (char) rand()%256,
(char) rand()%256, (char) rand()%256); glBegin(GL_POLYGON);
glVertex2f(x+size, y+size);
glVertex2f(x-size, y+size);
glVertex2f(x-size, y-size);
glVertex2f(x+size, y-size); glEnd(); glFlush();
/*------------------------------- */

/* Перерисовка изображения в окне.

Программа вызывается при изменении положения или размеров окна. */ void myReshape(GLsizei w, GLsizei h) {

/* Настройка рамки отсечения */

Приложение А. Демонстрационные программы

glMatrixMode(GL_PR0JECTION); glLoadIdentity();
glOrtho(0.0f (GLdouble)w, 0.0, (GLdouble)h, -1.0, 1.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity();

/* Настройка параметров видового окна и очистка окна */ glviewport(0,0,w,h); glClearColor (0.0, 0.0, 0.0, 1.0); glClear(GL_COLOR_BUFFER_BIT); glFlush();

/* Установка глобальных переменных размеров окна. Переменные будут использоваться подпрограммой отображения */ ww = w; wh = h;


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