}
/*...................-...........*/
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;