Кроме того, в качестве обрезающей кривой можно использовать одну или несколько функций gluNurbsCurve или построить обрезающие кривые, являющиеся комбинациями функций gluPwlCurve и gluNurbsCurve. Любая заданная обрезающая “кривая” GLU должна быть несамопересекающейся и замкнутой.

В приведенном ниже коде иллюстрируются обрезающие функции GLU для кубической поверхности Безье. Вначале задаются координаты самой внешней обрезающей кривой. Эти точки задаются в направлении против часовой стрелки полностью вокруг единичного квадрата. Затем в два этапа задаются координаты самой внутренней обрезающей кривой, и эти точки указываются по часовой стрелке. Кроме того, задаются векторы узлов для поверхности и первого внутреннего вырезаемого участка кривой для получения кубических кривых Безье. Внутренняя и внешняя кривые обрезки показаны на рис. 8.54.

GLUnurbsObj *bezSurface;

GLfloat outerTrimPts [5][2] = { {0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}, {0.0, 1.0}, {0.0, 0.0} };

Внешняя кривая обрезки по периметру единичного квадрата задается в направлении против часовой стрелки, а внутренние участки кривой обрезки определяются в направлении по часовой стрелке

Рис. 8.54. Внешняя кривая обрезки по периметру единичного квадрата задается в направлении против часовой стрелки, а внутренние участки кривой обрезки определяются в направлении по часовой стрелке

ЗАМЕТАЮЩЕЕ ПРЕДСТАВЛЕНИЕ

Пакеты объемного моделирования часто предлагают несколько методов построения. Заметающие представления полезны при создании трехмерных объектов с трансляционной, вращательной или другой симметрией. Такие объекты можно представить, задав двухмерный путь заметания, по которому данная форма проходит по области пространства. Набор таких двухмерных примитивов, как окружности и прямоугольники, может предлагаться для заметающего представления как пункты меню. Существуют и другие методы получения двухмерных фигур, например, построение замкнутых сплайновых кривых и поперечных сечений объемных объектов.

На рис. 8.55 иллюстрируется трансляционное заметание. Периодическая сплай-новая кривая на рис. 8.55, а определяет поперечное сечение объекта. Затем выполняется трансляционное заметание на заданное расстояние, для чего контрольные точки от ро до рз перемещаются по прямолинейной траектории, перпендикулярной плоскости поперечного сечения. Через определенные интервалы по этой траектории воспроизводится форма поперечного сечения и изображается набор связанных линий в направлении заметания, в результате чего получается каркасное представление, показанное на рис. 8.55, б.

Построение твердого тела с помощью трансляционного заметания. Трансляция контрольных точек периодической сплайновой кривой на панели а дает твердое тело, изображенное на панели б, поверхность которого можно описать точечной функцией Р(и, и)

Рис. 8.55. Построение твердого тела с помощью трансляционного заметания. Трансляция контрольных точек периодической сплайновой кривой на панели а дает твердое тело, изображенное на панели б, поверхность которого можно описать точечной функцией Р(и, и)

Построение объемного тела с помощью вращательного заметания. Вращение контрольных точек периодической сплайновой кривой, изображенной на панели а, относительно данной оси вращения дает объемное тело, представленное на панели б, поверхность которого можно описать точечной функцией Р(и, и)

Рис. 8.56. Построение объемного тела с помощью вращательного заметания. Вращение контрольных точек периодической сплайновой кривой, изображенной на панели а, относительно данной оси вращения дает объемное тело, представленное на панели б, поверхность которого можно описать точечной функцией Р(и, и)

Объединение двух объектов, показанных на панели а, дает новый составной объект, показанный на панели б

Рис. 8.57. Объединение двух объектов, показанных на панели а, дает новый составной объект, показанный на панели б


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