else
glOrtho(-4.0 *(GLfloat)w/(GLfloat)h, 4.0*(GLfloat)w/(GLfloat)h, -4.0, 4.0, -10.0, 10.0); glMatrixMode(GL_MODELVIEW); display();
}
/*.........................------*/
void myinit() {
GLfloat mat_specular[]={1.0, 1.0, 1.0, 1.0}; GLfloat mat_diffuse[]={1.0, 1.0, 1.0, 1.0}; GLfloat mat_ambient[]={1.0, 1.0, 1.0, 1.0}; GLfloat mat_shininess={100.0}; GLfloat light ambient[]={0.0, 0.0, 0.0, 1.0}; GLfloat light~diffuse[]={1.0, 1.0, 1.0, 1.0}; GLfloat light_specular[]={1.0, 1.0, 1.0, 1.0};
/* Установка компонентов источника 0 */
glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient); glLightfv(GL LIGHT0, GL_DIFFUSE, light_diffuse); glLightfv(GL~LIGHT0, GL_SPECULAR, light_specular);
/* Определение свойств материала */
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); glMaterialfv(GL_FRONT, GL_AMBIENT, mat ambient); glMaterialfv(GL FRONT, GL_DIFFUSE, mat~diffuse); glMaterialf(GL_FRONT, GL_SHININESS, mat_shininess);
glEnable(GL_SMOOTH); /* режим плавного закрашивания */ glEnable(GL_LIGHTING); /* учитывать источники света */ glEnable(GL_LIGHT0); /* включить источник 0 */ glEnable(GL_DEPTH_TEST); /* разрешить работу с z-буфером */
glClearColor (1.0, 1.0, 1.0, 1.0); glColor3f (0.0, 0.0, 0.0);
}
А. 12. Построение сферы
/*-------------------------------*/
уо1с1 main(int агдс, спаг **агду) {
п=а!о1(агду[1]); д1и11п1г.(&агдс, агду); д1Шп11П1зр1ауМос1е(С1,иТ_8ШС1,Е | СНИМАВ | СЫИМЭЕРТН); glutInitWindowSize(500, 500); glutCreateWindow("эрпеге"); ту1п1г,(); д1и1КезпареЕипс(туКезпаре); д1и^01зр1ауЕипс^1зр1ау); glutMainLoop();
}
/*-------Конец файла-------*/
Приложение А. Демонстрационные программы
ПРИЛОЖЕНИЕ
Б
Абстрактные пространства в компьютерной графике Математическое обеспечение систем компьютерной графики - это совокупность методов представления и манипулирования множеством геометрических элементов, главными из которых являются точки и отрезки прямых. Эти методы базируются на свойствах нескольких типов абстрактных пространств. В приложение Б мы включили материал об основных свойствах тех типов пространств, которые наиболее широко используются в средствах формирования и трансформации геометрических объектов в системах компьютерной графики, - линейного (векторного), аффинного и евклидового. Линейное (векторное) пространство содержит объекты только двух типов: скаляры (действительные числа) и векторы. В аффинном пространстве к ним добавляется третий тип объектов - точки. В евклидовом пространстве вводится концепция расстояния.