Введение в OpenGL - страница 13
Параметры slices и stacks имеют тот же смысл, что и в предыдущей команде.
>void gluDisk(GLUquadricObj*qobj, GLdouble innerRadius, GLdouble outerRadius, GLint slices, GLint loops)
Строит плоский диск (то есть круг) с центром в начале координат и радиусом outerRadius. При этом если значение innerRadius ненулевое, то в центре диска будет находиться отверстие радиусом innerRadius. Параметр slices задает число разбиений диска вокруг оси z, а параметр loops -число концентрических колец, перпендикулярных оси z.
>void gluPartialDisk(GLUquadricObj *qobj, GLdouble innerRadius, GLdouble outerRadius, GLint slices, GLint loops, GLdouble startAngle, GLdouble sweepAngle);
Отличие этой команды от предыдущей заключается в том, что она строит сектор круга, начальный и конечный углы которого отсчитываются против часовой стрелки от положительного направления оси y и задаются параметрами startAngle и sweepAngle. Углы измеряются в градусах.
Команды, проводящие построение примитивов из библиотеки GLUT, реализованы через стандартные примитивы OpenGL и GLU. Для построения нужного примитива достаточно произвести вызов соответствующей команды.
>void glutSolidSphere(GLdouble radius, GLint slices, GLint stacks)
>void glutWireSphere(GLdouble radius, GLint slices, GLint stacks)
Команда glutSolidSphere() строит сферу, а glutWireSphere() - каркас сферы радиусом radius. Остальные параметры имеют тот же смысл, что и в предыдущих командах.
>void glutSolidCube(GLdouble size)
>void glutWireCube(GLdouble size)
Эти команды строят куб или каркас куба с центром в начале координат и длиной ребра size.
>void glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks)
>void glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks)
Эти команды строят конус или его каркас высотой height и радиусом основания base, расположенный вдоль оси z. Основание находится в плоскости z=0. Остальные параметры имеют тот же смысл, что и в предыдущих командах.
>void glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings)
>void glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings)
Эти команды строят тор или его каркас в плоскости z=0. Внутренний и внешний радиусы задаются параметрами innerRadius, outerRadius. Параметр nsides задает число сторон в кольцах, составляющих ортогональное сечение тора, а rings- число радиальных разбиений тора.
>void glutSolidTetrahedron(void)
>void glutWireTetrahedron (void)
Эти команды строят тетраэдр (правильную треугольную пирамиду) или его каркас, при этом радиус описанной сферы вокруг него равен 1.
>void glutSolidOctahedron(void)
>void glutWireOctahedron(void)
Эти команды строят октаэдр или его каркас, радиус описанной вокруг него сферы равен 1.
>void glutSolidDodecahedron(void)
>void glutWireDodecahedron(void)
Эти команды строят додекаэдр или его каркас, радиус описанной вокруг него сферы равен квадратному корню из трех.
>void glutSolidIcosahedron(void)
>void glutWireIcosahedron(void)
Эти команды строят икосаэдр или его каркас, радиус описанной вокруг него сферы равен 1.
Создание приложения в среде MS Visual C++ 5.0
Перед началом работы необходимо скопировать файлы glut.h, glut32.lib glut32.dll в каталоги…\MSVC\Include\Gl,…\MSVC\Lib,…\Windows\System соответственно. Также в этих каталогах надо проверить наличие файлов gl.h, glu.h, opengl32.lib, glu32.lib, opengl32.dll, glu32.dll, которые обычно входят в состав Visual C++ и Windows. При использовании команд из библиотеки GLAUX к перечисленным файлам надо добавить glaux.h, glaux.lib.
Для создания приложения надо выполнить следующие действия:
• Создание проекта: для этого надо выбрать File→New→Projects→Win32 Console Application, набрать имя проекта, OK.
• В появившемся окне выбрать ‘An empty project’, Finish, OK.
• Текст программы можно либо разместить в созданном текстовом файле (выбрав File→New→Files→Text File), либо добавив файл с расширением *.c или *.cpp в проект (выбрав Project→Add To Project→Files).
• Подключить к проекту библиотеки OpenGL. Для этого надо выбрать Project-›Settings-›Link