glMateri a 1fv(Gl_FRONT.GL_0IFFUSE.mat_diffuse);
glMateri alfv(GL_FR0NT.GL_SPECULAR.mat_specul ar):
glMaterialfv(GL_FRONT.GL_SHININESS.mat_shininess):
продолжением
Преобразования объектов
Листинг 5.6 (продолжение)
// set the light source properties // задаем свойства источника света
GLfloat lightIntensity[] - {0.7f.0.7f.0.7f.l.0f}:
GLfloat light_position[] - {2.Of.6.Of.3.Of.0.Of}:
glLightfv(GL_LIGHTO. GL_P0SITI0N. light_position):
glLightfv(GL_LIGHTO. GL_DIFFUSE. lightlntensity): // set the camera // устанавливаем камеру
glMatrixMode(GL_PROJECTION):
glLoadldentityO;
double winHt -1.0: // half-height of the window // половина высоты окна
gl0rtho(-winHt*64/48.0. winHt*64/48.0. -winHt. winHt. 0.1. 100.0):
glMatrixMode(GL_MODELVIEW);
glLoadldentityO:
gluLookAt(2.3. 1.3. 2. 0. 0.25. 0. 0.0. 1.0. 0.0): // start drawing // начинаем рисовать
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT): // clear the screen // очищаем экран
glPushMatrixO:
glTranslated(0.4. 0.4. 0.6):
glRotated(45.0.0.1):
glScaled(0.08. 0.08. 0.08):
jackO; // draw the jack // рисуем переключатель
Соединительный модуль Siemens 6ES7972-0BA12-0XA0.
glPopMatrixO;
glPushMatrixO:
glTranslated(0.6. 0.38. 0.5):
glRotated(30.0.1.0):
glutSolidTeapot(0.08): // draw the teapot // рисуем чайник
glPopMatrixO:
glPushMatrixO:
glTranslated(0.25. 0.42. 0.35): // draw the sphere // рисуем сферу
glutSolidSphere(0.1. 15. 15):
glPopMatrixO:
glPushMatrixO:
glTranslated(0.4. 0. 0.4):
table(0.6. 0.02. 0.02. 0.3): // draw the table // рисуем стол
glPopMatrixO:
wall(0.02): // wall #l:in xz-plane // стена #1: в плоскости xz
glPushMatrixO;
5.6. Рисование трехмерных сцен с применением OpenGL
gjRotated(90.0. 0.0. 0.0. 1.0):
wall(0.02): // wall #2:in yz-plane // стена #2: в плоскости yz
glPopMatrixO;
glPushMatrixO;
glRotated(-90.0. 1.0. 0.0. 0.0):
wall (0.02): // wall #3:in xy-plane // стена #3: в плоскости xy
glPopMatrixO:
glFlushO;
}
//««««««««««« main »»»»»»»»»»»»»»»>