iinclude <GL/glut.h>

/* Оператор включения файла <glut.h> зависит от размещения файлов библиотек на конкретном компьютере */

/* Включение файла glut.h автоматически включает в программу gl.h и glu.h */

void myinit() {

/* Атрибуты */

/* Цвет фона - белый */ glClearColor(1.0, 1.0, 1.0, 1.0);

/* Цвет переднего плана - красный */ glColor3f(1.0, 0.0, 0.0);

/* Установка параметров отображения */ /* Окно 500 х 500 */

/* Начало экранных координат в левом нижнем углу */

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

glMatrixMode(GL_PR0JECTION); glLoadIdentity();
gluOrtho2D(0.0, 500.0, 0.0, 500.0); glMatrixMode(GL_MODELVIEW);
}
/* --......------.................*/
void display()
{

/* Определение типа данных, представляющего в программе */ /* точку двухмерного пространства */

typedef GLfloat point2[2];

/* Треугольник */

point2 vertices[3]={{0.0,0.0},
{250.0,500.0},
{500.0,0.0}};
int і, j, k;

int rand(); /* Стандартный генератор случайных чисел */ point2 р ={75.0,50.0}; /* Произвольно выбранная исходная */

/* точка внутри треугольника */

glClear(GL_COLOR_BUFFER_BIT); /* Очистить окно */

/* Вычислить и вывести на экран 5000 точек узора */

гог( к=0; к<5000; к++) {

j=rand()%3; /* Выбрать случайно одну из вершин */

/* Вычислить точку на полпути между выбранной */ /* вершиной и прежней точкой */

р[0] = (р[0]+уеПд.се8[Л[0])/2.0; р[1] = (р[1]+уегисев[Л[1])/2.0;

/* Вычертить новую точку */

д1Ведл.п(С1,_РОШГ8); д1УеПех2г>(р); д1Епс1();

}

дШиэпО; /* Очистить буферы */

}

А. 1. Двухмерный узор Серпинского

/*-------------------------------*/
void main(int arge, char** argv) {

/* Стандартная процедура инициализации библиотеки GLUT */ glutlnit(&argc,argv);

/* Дублируются */

/* установки по умолчанию. */

/* Эти операторы можно опустить. */ glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(500,500); /* Окно 500 х 500 пикселей */ glutInitWindowPosition(0,0); /* Начало координат */

glutCreateWindow("Sierpinski Gasket"); /* Заголовок окна */ /* Регистрация функции отображения. */ /* Функция будет вызвана при открытии окна. */


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