//применимо при использовании Windows 95/98/NT

linclude <gl/Gl.h>

linclude <gl/Glu,h>

linclude <gl/glut.h>

//««««« axis »»»»»»»

void axis(double length)

Френсис Хилл

Рис. 5.55. Каркасное изображение различных примитивных форм продолжение т& Глава 5. Преобразования объектов Листинг 5.5 (продолжение)

{

// draw a z-axis. with cone at end

// рисуем ось 2 с конусом на конце стрелки

glPushMatrixO:

glBegin(GL_LlNES):

glVertex3d(0. 0. 0); glVertex3d(0.0,length); // along the z-ax1s // вдоль оси г

glEndO:

glTranslated(0. 0.length - 0.2): glutWireCone(0.04. 0.2. 12. 9): glPopMatrlxO;

}

//«««««««««<«««««< displayWire »»»»»»»

void displayWire(void)

{

glMatrixMode(6L_PR0JECTI0N): // set the view volume shape // устанавливаем форму отображаемого объема

glLoadldentityO:

glOrtho(-2.0*64/4B.O. 2.0*64/48.0. -2.0. 2.0. 0.1. 100):

glMatrixMode(GL_MODELVIEW): // position and aim the camera // позиционируем и нацеливаем камеру

glLoadldentityO:

gluLookAt(2.0. 2.0. 2.0. 0.0. 0.0. 0.0. 0.0. 1.0. 0.0):

g1 CIea r(GL_C0L0R_BUFFERJ3IT): // clear the screen // очищаем экран

glColor3d(0.0.0) // draw black lines // рисуем черные линии

axis(0.5): // z-axis // ось z

glPushMatrixO:

glRotated(90. 0. 1.0. 0):

ax1s(0.5): // y-axis // ось у

glRotated(-90.0. 1. 0. 0):

axis(0.5): // z-axis // ось z

glPopMatrixO:

glPushMatrixO:

glTranslated(0.5. 0.5. 0.5): // big cube at (0.5. 0.5. 0.5) // большой куб в точке (0.5. 0.5. 0.5)

glutwireCubeU.O):

glPopMatrixO:

5.6. Рисование трехмерных сцен с применением OpenGL

glPushMatrixO:

glTranslated(l.O.l.O.O): // sphere at (1.1.0) // сфера в точке (1.1.0)

gl utWi reSphereC 0.25. 10. 8):

glPopMatrixO:

glPushMatrixO:

glTranslated(l.O.O.l.O): // cone at (1.0.1) // конус в точке (1.0.1)

glutWireCone(0.2. 0.5. 10. 8):

glPopMatrixO: .

glPushMatrixO:

glTranslated(l.l.l):

glutWireTeapot(0.2): // teapot at (1.1.1) // чайник в точке (1.1.1)


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