1) определить новый квадратичный объект;
2) задать стиль рисования (GLUJ.INE для каркасной модели, GLU_FILL для объемной визуализации);
3) нарисовать объект.
Код в листинге 5.4 делает все вышеперечисленное.
Листинг 5.4. Формы, доступные в GLU
GLUquadricObj * qobj - gluNewQuadricO:
// make a quadric object
// создаем квадратичный объект
gluQuadricDrawStyleCqobj,GLU_LINE):
// set style to wireframe
// устанавливаем стиль каркасной модели
5.6. Рисование трехмерных сцен с применением OpenGL
gluCylinderCqobj. baseRad. topRad. height. nSlices. nStacks): // draw the cylinder // рисуем цилиндр
Впоследствии мы применим некоторые из вышеупомянутых форм в двух фундаментальных примерах, в которых основное внимание уделяется использованию аффинных преобразований при моделировании и визуализации трехмерной сцены. Там же приведена законченная программа для рисования каждой из заданных сцен. Вы серьезно продвинетесь в понимании сути этих программ, если введете их в компьютер, создадите эти фигуры и затем понаблюдаете за их изменением путем варьирования параметров, входящих в этот код.
Пример 5.6.2. Сцена, составленная из каркасных объектов На рис. 5.55 показана сцена с несколькими объектами, расположенными в углах единичного куба, один угол которого совпадает с началом координат. В различных углах этого куба расположено семь объектов, причем все они изображены в каркасной форме.
Камера имеет отображаемый объем с форматным соотношением 640/480, располагающийся в промежутке от -2 до 2 по оси у. Ближняя плоскость определяется значением ЛГ= 0,1, дальняя плоскость - значением F = 100. Это достигается посредством вызова функции
gl0rtho(-2.0* aspect, 2.0* aspect. -2.0. 2.0. 0.1. 100):
Камера позиционируется с параметрами eye - (2,2,2), look - (0,0,0) и up = (0,1,0) (параллельно оси у) посредством вызова функции
gluLookAt(2.0. 2.0, 2.0. 0.0. 0.0. 0.0. 0.0. 1.0. 0.0):
Листинг S.S. Полная программа для создания рис. 5.55 с использованием OpenGL
linclude <windows.h>
//suitable when using Windows 95/98/NT