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

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