}
/*---------.....-------..........*/
void myinit() {
g1Viewport(0,0,ww,wh);

/* Установка размеров отсекающей рамки в соответствии с размерами окна. Такая настройка позволяет избежать масштабирования координат объектов при изменении размеров окна. */

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, (GLdouble)ww , 0.0, (GLdouble)wh , -1.0, 1.0);

/* Установка черного цвета фона и очистка окна */ glClearColor (0.0, 0.0, 0.0, 1.0); glClear(GL_COLOR_BUFFER_BIT); glFlush();

/* Регистрация функции обработки события изменения размеров окна */ glutReshapeFunc(myReshape);

}
/* ------------------------------- */
void mouse(int btn, int state, int x, int y) {
if(btn==GLUT_RIGHT_BUTTON && state==GLUT_DOWN) exit();
}

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

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

/* Функция отображения.

Библиотека GLUT 3.0 требует, чтобы такая функция была обязательно определена в программе.*/

void display() {}
/*............................... */
int main(int arge, char** argv) {
glutlnit(Sarge,argv);
glutlnitDisplayMode (GLUT_SINGLE | GLUT_RGB); glutCreateWindow( "square"]"; myinit ();
glutReshapeFunc (myReshape); glutMouseFunc (mouse); glutMotionFunc(drawSquare); glutDisplayFunc(display);
glutMainLoop();
}

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

A.6. Программа рисования

/* Простая программа, формирующая на экране текст, отрезки прямых, треугольники, прямоугольники и точки */

idefine NULL О Idefine LINE 1 idefine RECTANGLE 2 Idefine TRIANGLE 3 Idefine POINTS 4 Idefine TEXT 5

linclude <GL/glut.h>
void mouse(int, int, int, int);
void key(unsigned char, int, int);
void display();
void drawSquare(int, int);
void myReshape(GLsizei, GLsizei);
void myinit();
void screen_box(int, int, int); void rightjnenu(int); void middlejnenu(int); void colorjnenu(int);

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

void pixel_menu(int); void fill_menu(int); int pick(int, int);

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

GLsizei wh = 500, ww GLfloat size =3.0; int draw_mode = 0; int rx, ry;

500; /* исходные размеры окна */


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