Важной составной частью геометрических моделей является описание поверхностей. Если поверхности детали — плоские грани, то модель может быть выражена достаточно просто определенной информацией о гранях, ребрах, вершинах детали. При этом обычно используется метод конструктивной геометрии. Представление с помощью плоских граней имеет место и в случае более сложных поверхностей, если эти поверхности аппроксимировать множествами плоских участков — полигональными сетками. Тогда можно поверхностную модель задать одной из следующих форм:
  1. модель есть список граней, каждая грань представлена упорядоченным списком вершин (циклом вершин); эта форма характеризуется значительной избыточностью, так как каждая вершина повторяется в нескольких списках.
  2. модель есть список ребер, для каждого ребра заданы инцидентные вершины и грани.
Процесс построения 3D-изображения в виде полигональных сеток можно представить состоящим из трех этапов. На первом этапе поверхность преобразуется в множество многоугольников (полигонов). Далее выполняются геометрические преобразования и установки освещения. На заключительном третьем этапе, так называемом "рендеринг" (rendering), создается двумерное изображение из полученных на предыдущих этапах многоугольников.
Однако аппроксимация полигональными сетками при больших размерах ячеек сетки дает заметные искажения формы, а при малых размерах ячеек оказывается неэффективной по вычислительным затратам. Поэтому более популярны описания неплоских поверхностей кубическими уравнениями в форме Безье или B-сплайнов.
Знакомство с этими формами удобно выполнить, показав их применение для описания геометрических объектов первого уровня — пространственных кривых.
Примечание 1
Геометрическими объектами нулевого, первого и второго уровней называют соответственно точки, кривые, поверхности.
В подсистемах графики и геометрического моделирования используются параметрически задаваемые кубические кривые

 (1)


где . Такими кривыми описывают сегменты аппроксимируемой кривой, т.е. аппроксимируемую кривую разбивают на сегменты и каждый сегмент аппроксимируют уравнениями (1).
Применение кубических кривых обеспечивает (соответствующим выбором четырех коэффициентов в каждом из трех уравнений) выполнение четырех условий сопряжения сегментов. В случае модели Безье этими условиями являются прохождение кривой сегмента через две заданные концевые точки и равенство в этих точках касательных векторов соседних сегментов. В случае B-сплайнов выполняются условия непрерывности касательного вектора и кривизны (т.е. первой и второй производных) в концевых точках сегментов. Использование сплайнов обеспечивает высокую степень "гладкости" кривой, хотя прохождение аппроксимирующей кривой через заданные точки здесь не обеспечивается. Применение полиномов выше третьей степени не рекомендуется, так как велика вероятность появления "волнистости".
В случае формы Безье коэффициенты в (1) определяются, во-первых, подстановкой в (1) значений и и координат заданных концевых точек и соответственно, во-вторых, подстановкой в выражения производных



тех же значений и и координат точек и , задающих направления касательных векторов (рис. 1). В результате для формы Безье получаем

 (2)


где — вектор-строка, матрица представлена в табл. 1, — вектор координат точек , , и , аналогично , — векторы координат , тех же точек.
Таблица 1    
-13-31
3-630
-3300
1000

Рис. 1.  Кривая Безье
В случае B-сплайнов аппроксимируемая кривая делится на участков, выделяемых последовательными точками . Участок между парой соседних точек и аппроксимируется B-сплайном, построенным с использованием четырех точек . B-сплайн на участке может быть представлен выражениями, аналогичными (2),



для которых матрица имеет иной вид и представлена в табл. 2, а векторы , , содержат соответствующие координаты точек .
Примечание 2
Покажем, что в точках сопряжения для первой и второй производных аппроксимирующего выражения выполняются условия непрерывности, что требуется по определению B-сплайна. Обозначим участок аппроксимирующего B-сплайна, соответствующий участку исходной кривой, через . Тогда для этого участка и координаты х в точке сопряжения имеем и


Для участка в той же точке имеем и


т.е. равенство производных в точке сопряжения на соседних участках подтверждает непрерывность касательного вектора и кривизны. Естественно, что значение координаты точки аппроксимирующей кривой на участке


равно значению , подсчитанному для той же точки на участке , но значения координат узловых точек и аппроксимирующей и аппроксимируемой кривых не совпадают.
Таблица 2    
-1/61/2-1/21/6
1/2-11/20
-1/201/20
1/62/31/60

Аналогично можно получить выражения для форм Безье и B-сплайнов применительно к поверхностям с учетом того, что вместо (1) используются кубические зависимости от двух переменных.