Сначала вспомним, что в разделе «Обзор: квадратичный и кубический твининг и кривые Безье» мы рассматривали плоский лоскут (patch), заданный в параметрической форме: Р(и, v) = С + аи + bv, (6.21)
где С - точка, а а и b - векторы. Диапазон значений для параметров и и v обычно ограничен отрезком [0, 1], и в этом случае лоскут является ЗО-параллелограммом с угловыми вершинами С, С + а, С + Ь, С + а + Ь(см. рис. 4.23).
6.5. Каркасные аппроксимации гладких объектов Распространим теперь наши интересы на нелинейные формы, чтобы выразить поверхности более общего вида. Введем три функции Х( ), У( ), Z( ), тогда поверхность в точечной форме будет иметь представление: Р(и, v) - (Х(и, v), У (и, v), Z(u, v)), (6.22)
где unv имеют свои диапазоны изменения. Различные поверхности характеризуются различными функциями X, У, Z. Будем считать, что поверхность находится «в точке» (X(Q, 0), У(0,0), Z(0,0)), когда и = 0, v = 0, и в точке (Х(1,0), У(1,0), Z(l, 0)), когда и = 1, v = 0 и т. д. Помните, что для представления поверхности требуется два параметра, в то время как для трехмерной кривой - только один. Изменение параметра и при постоянном значении v образует кривую, называемую а-контуром (^-contour). А изменение v при постоянном значении и образует и-контур.
Неявная форма поверхности Хотя мы в основном имели дело с параметрическими представлениями различных поверхностей, полезно ознакомиться и с другим способом описания поверхностей: через ее неявную форму (implicit form). Напомним из раздела «Применение параметрического задания кривой», что двумерная кривая имеет неявную форму F(x,y), которая должна равняться нулю тогда и только тогда, когда точки (х, у) лежат на этой кривой. Для трехмерных поверхностей существует аналогичная функция F(x, у, z), которая равна нулю тогда и только тогда, когда точка (х, у, z) находится на этой поверхности. Таким образом, поверхность выражается неявным уравнением (implicit equation):
F(x,y,z)~0, (6.23)
которое удовлетворяется для всех точек данной поверхности и только для них. Это уравнение указывает, как должны быть связаны величины х, у, z для точки (x,y,z), принадлежащей поверхности. Вспомним, например (из главы 4), что плоскость, проходящая через точку В и имеющая нормальный вектор п, описывается уравнением пхх + пуу + nz=* D (где D = п В), откуда неявная форма этой плоскости имеет вид: F(x, у, z) = пхх + пуу + nzz - D. Иногда удобнее считать F функцией от точки Р, а не от трех переменных х, у, z; в этом случае уравнение F(P) = 0 описывает все точки, лежащие на данной поверхности. Например, для описываемой здесь плоскости можно определить функцию F(P) = п (Р - В) и утверждать, что точка Р лежит в данной плоскости тогда и только тогда, когда F(P) = п (Р - В) равно нулю. Если мы хотим работать с координатными фреймами (вспомните раздел «Отображение ключевых геометрических объектов»), то точка Р будет представляться четверкой Р = (x,y,z,\) , а неявная форма для плоскости будет выглядеть еще проще, а именно F(P) = n-P, где величина n = (nx,ny,nz, - D) содержит и нормальный вектор, и величину -D.