ФУНКЦИЯ GLUT ИЗОБРАЖЕНИЯ ЧАЙНИКА С ПОМОЩЬЮ КУБИЧЕСКИХ ПОВЕРХНОСТЕЙ

На заре развития методов компьютерной графики для описания нескольких трехмерных объектов были построены наборы данных (представления через многоугольные сетки), которые затем можно было использовать для проверки методов визуализации. Такие объекты включали поверхности автомобиля “Фольксваген” и чайник, разработанный в Университете штата Юта (США). Набор данных для чайника, построенного Мартином Ньюэллом (Martin Newell) в 1975 году, содержал 306 вершин, определяющих 32 бикубических участка поверхности Безье (раздел 8.11). Поскольку определение координат точек сложной поверхности является длительным процессом, эти наборы данных, особенно чайник в виде поверхностной сетки, стали широко использоваться.

Чтобы отобразить чайник в виде сетки из более тысячи бикубических участков поверхности, используется одна из следующих двух функций GLUT:

glutWireTeapot (size); ИЛИ

glutSolidTeapot (size); Поверхность чайника генерируется с использованием функций OpenGL построения кривых Безье (раздел 8.11). Параметр size устанавливает значение двойной точности с плавающей запятой - максимальный радиус тела чайника. Чайник центрирован в начале внешней системы координат, а его вертикальная ось идет вдоль оси у.

ФУНКЦИИ GLU ПОВЕРХНОСТЕЙ ВТОРОГО ПОРЯДКА

Чтобы сгенерировать поверхность второго порядка с использованием функций GLU, нужно присвоить имя квадрике, активизировать процедуру визуализации поверхностей второго порядка GLU, а также задать значения параметров поверхности. Кроме того, можно указать значения других параметров, чтобы контролировать внешний вид поверхности второго порядка GLU.

Приведенные ниже операторы иллюстрируют стандартную последовательность вызовов для отображения каркасной сферы с центром в начале внешней системы координат.

GLUquadricObj *spherel; spherel = gluNewQuadric ( ); gluQuadricDrawStyle (spherel, GLU_LINE); gluSphere (spherel, r, nLongitudes, nLatitudes); Название объекта второго порядка определяется в первом операторе, и в данном примере выбрано имя spherel. Затем это имя можно использовать в других функциях GLU для обращения к этой конкретной поверхности второго порядка. Затем с помощью функции gluNewQuadric активизируется процедура визуализации поверхностей второго порядка, после чего с помощью команды gluQuadricDrawStyle для поверхности spherel выбирается режим отображения GLU_LINE. Таким образом, сфера выводится на экран в каркасной форме с отрезками между каждой парой вершин поверхности. Параметру г присваивается значение двойной точности (радиус сферы), и сферическая поверхность делится на набор многоугольных граней с помощью равномерно размещенных линий широты и долготы. Целое число линий долготы и широты задается в виде значений параметров nLongitudes и nLatitudes.

Для отображения поверхностей GLU второго порядка доступны три других режима отображения. Если использовать символьную константу GLU_POINT как аргумент функции gluQuadricDrawStyle, поверхность второго порядка отобразится в виде точечного графика. В каждой вершине поверхности, сформированной пересечением линии широты и линии долготы, ставится точка. Другой вариант - использовать символьную константу GLU_SILHOUETTE. В результате получится каркасное изображение с общими краями между двумя компланарными многоугольными гранями. Наконец, при использовании символьной константы GLU_FILL многоугольные участки отображаются как затененные закрашенные области.


⇐ вернуться назад | | далее ⇒