Два наиболее распространенных методов представления кривых и поверхностей в геометрическом моделировании - неявные уравнения и параметрические функции.
Неявное уравнение кривой, лежащей в плоскости `xy`, имеет вид `f(x,y)=0`. Это уравнение описывает неявную зависимость между `x` и `y` координатами точек, лежащих на кривой. Для данной кривой уравнения уникальны с точностью до мультипликативной константы. Примером может служить круг единичного радиуса с центром в начале координат, определяется уравнением `f(x,y)=x^2+y^2-1=0`.
Рисунок 1.1. Круг с радиусом 1 и центром в начле координат
В параметрической форме, каждая из координат точки на кривой представлена отдельно, в виде явной функции независимого параметра
`C(u)=(x(u),y(u))` `a<=u<=b`
Таким образом, `C(u)` является вектор-функцией независимой переменной, `u`. Хотя отрезок `[a,b]` - произволен, но, как правило, нормированный на `[0,1]`. Первый квадрант круга, показанного на Рисунке 1.1, определяется параметрическими функциями
`x(u)=cos(u)`
`y(u)=sin(u)` `0<=u<=pi/2` (1.1)
Установив `t=tan(u/2)`, можно получить альтернативное представление
`x(t)={1-t^2}/{1+t^2}`
`y(t)={2t}/{1+t^2}` `0<=t<=1` (1.2)
Таким образом, параметрическое представление кривой не уникально
Полезно думать о `C(u)=(x(u),y(u))` как о пути, проходимый частицей со временем; где `[a,b]` изменение времени, и `[a,b]` временной интервал. Первая и вторая производная от `C(u)`, соответствует скорости и ускорению частицы, соответственно. Дифференцируя формулы (1.1) и (1.2), получим функции скорости
`C'(u)=(x'(u),y'(u))=(-sin(u),cos(u))`
`C'(t)=(x'(t),y'(t))=({-4t}/{(1+t^2)^2},{2(1-t^2)}/{(1+t^2)^2})`
Обратите внимание, что величина вектора скорости, `C'(u)`, является постоянной
`|C'(u)|=sqrt{sin^2(u)+cos^2(u)}=1`
т. е. направление частицы меняется со временем, но её скорость постоянна. Это упоминается как форма параметризации. Подставляя `t=0` и `t=1` в `C'(t)` дает `C'(0)=(0,2)` и `C'(1)=(-1,0)`, то есть, стартовая скорость частицы это удвоенная конечная скорость.
Рисунок 1.2. Вектора скорости `C'(u)` и `C'(t)` при `u,t=0` и 1
Поверхность определяется неявным уравнением вида `f(x,y,z)=0`. Например, возьмём сферу единичного радиуса с центром в нуле, как показано на рисунке 1.3 и заданной уравнением `x^2+y^2+z^2-1=0`. Параметрическое представление (не единственное) для той же сферы дается `S(u,v)=(x(u,v),y(u,v),z(u,v))`, где
`x(u,v)=sin(u)cos(v)`
`y(u,v)=sin(u)sin(v)`
`z(u,v)=cos(u)` `0<=u<=pi, 0<=v<=2pi` (1.3)
Обратите внимание, что для определения поверхности требуются два параметра. Устанавливая `u` неизменной и меняя `v` создаём широтные линии сферы; устанавливая `v` неизменной и меняя `u` создаём продольные линии сферы.
Рисунок 1.3. Сфера с радиусом 1 и центром в начле координат
Обозначим частные производные `S(u,v)` как `S_u(u,v)=(x_u(u,v), y_u(u,v),` ` z_u(u,v))` и `S_v(u,v)=(x_v(u,v),y_v(u,v),z_v(u,v))`, то есть, скорости вдоль широтных и продольных линий. В любой точке на поверхности, где векторное произведение `S_u xx S_v` не исчезает, единичный вектор нормали, `N`, имеет вид (Рисунок 1.4).
`N={S_u xx S_v}/{|S_u xx S_v|}` (1.4)
Существование нормального вектора в точке, и соответствующей касательной плоскости, является геометрическим свойством поверхности независимо от параметризации. Различные параметризации дают разные частные производные, но уравнение (1.4) всегда дает N при условии, что знаменатель не обращается в нуль. Из уравнения рисунке 1.3 видно, что для всех `v`, `0<=v<=2pi`, `S_v(0,v)=S_v(pi,v)=0`, то есть, `S_v` обращается в нуль у Северного и Южного полюсов сферы. Очевидно, что нормальные векторы существуют и в двух полюсах, но эти параметрические уравнения (1.4) не могут быть использована для их вычисления.
Рисунок 1.4. Частная производная и единичные нормальные векторы `S(u,v)`
Для неявной и параметрической форм, трудно утверждать, что одна всегда более подходящая, чем другая. Обе имеют свои преимущества и недостатки. Успешное геометрическое моделирование делается с помощью обоих методов. Сравним эти два метода следующим образом:
Мы сконцентрировались, в основном, на параметрической форме, в остальной части книги. Подробнее о неявных и параметрических формах можно найти в стандартных текстах ([Faux81; Mort85; Hoff89; Beac91]).