Русская Википедия:Параметрическое задание поверхности
Класс трёхмерных параметрических поверхностей определяется функцией <math>F(t_1,\ldots,t_k):\mathbb{M}\to\mathbb{R}^3</math>, зависящей от <math>k</math> параметров и отображающей некоторое связное множество <math>\mathbb{M}</math> из n-мерного пространства в трёхмерное пространство таким образом, что это отображение является поверхностью. Эта функция <math>F</math> задаёт класс поверхностей, а набор <math>k</math> параметров — конкретную поверхность из этого класса.
Наиболее практичным является случай, когда множество <math>\mathbb{M}</math> является единичным квадратом в двумерном пространстве. В этом случае параметрическую поверхность можно описать так:
- <math>(x,y,z) = F(u,v)</math> или <math>\left\{ \begin{array}{ccc}
x &=& X(u,v) \\ y &=& Y(u,v) \\ z &=& Z(u,v) \end{array}\right.</math>, где <math>(u,v)\in[0,1]^2</math>
Параметрические поверхности широко используются в прикладной геометрии и компьютерной графике для представления сложных поверхностей. Параметризация делает такие поверхности удобными для обработки и отображения.
Примеры
- ПлоскостьТочка <math>\vec{O}</math> и базис из двух неколлинеарных векторов <math>\vec{l}_1,\vec{l}_2</math> в трёхмерном пространстве определяет плоскость и отображение на неё двумерной декартовой системы координат. Тем самым определяется <math>uv</math>-параметризация плоскости (<math>u</math> и <math>v</math> — параметры):
- <math>(x,y)=\vec{O}+u\vec{l}_1+v\vec{l}_2</math>
- Плоский N-угольник. В общем случае параметризацию в N-угольнике можно ввести, используя систему барицентрических координат.
- Треугольник Этот важнейший частный случай N-угольника заслуживает особого внимания. Наиболее распространённый способ параметризации треугольника — линейное отображение на него треугольника из <math>uv</math>-пространства.
- Сфера Для параметризации сферы удобнее всего использовать одноимённую систему координат:
- <math>\left\{\begin{array}{ccc}
x &=& \rho\cos\varphi\cos\theta \\ y &=& \rho\cos\varphi\sin\theta \\ z &=& \rho\sin\varphi\end{array}\right.,\quad \varphi\in\left[-\frac{\pi}{2},\frac{\pi}{2}\right],\;\theta\in[0,2\pi)</math>.
- Боковая поверхность бесконечного кругового цилиндра. Вполне естественно использовать цилиндрическую систему координат:
- <math>\left\{\begin{array}{ccc}
x &=& \rho\cos\varphi \\ y &=& \rho\sin\varphi \\ z &=& z\end{array}\right.,\quad \varphi\in[0,2\pi),z \in(-\infty,+\infty)</math>.
- Билинейный интерполяционный четырёхугольник. Упорядоченный набор из 4-х точек в пространстве <math>P_1,\ldots,P_4</math> определяет билинейную интерполяционную поверхность и задаёт отображение на неё квадрата <math>u,v\in[0,1]</math>:
- <math>(x,y)=P_1uv+P_2(1-u)v+P_3u(1-v)+P_4(1-u)(1-v)</math>
- Эта поверхность является гладкой, однако невозможность задавать произвольные касательные на её границе делает её практически неприменимой в качестве патчей
- Поверхность Безье. На практике применяется в основном два вида поверхностей Безье: бикубическая 3-го порядка — четырёхугольник, определяемый 16-ю точками, и барицентрическая 3-го порядка — треугольник, определяемый 10 точками. Барицентрическая система координат в треугольнике содержит 3 числа, поэтому она не всегда удобна.
- Граница поверхности Безье состоит из кривых Безье. Точки, определяющие поверхность, определяют также кривые её границы, включая нормали на них. Это позволяет создавать гладкие составные поверхности, то есть использовать поверхности Безье в качестве патчей
- Рациональная поверхность Безье отличается тем, что каждой точке в её определении назначен некоторый «вес», определяющий степень её влияния на форму поверхности.
- B-сплайновая поверхность. На практике обычно применяются бикубические B-сплайновые поверхности. Как и поверхности Безье, они определяются 16 точками, однако в общем случае не проходят через эти точки. Однако B-сплайны удобно использовать в качестве патчей, так как они хорошо стыкуются друг с другом при использовании общей сетки вершин, а сами вершины позволяют явным образом задавать нормали и касательные на границах патчей.
- При необходимости более гибкого управления формой поверхности применяют рациональные B-сплайны, неоднородные B-сплайны, а также комбинированный вариант — неоднородные рациональные B-сплайны (NURBS).
Свойства
Пусть <math>\frac{D(x,y)}{D(u,v)}=\begin{vmatrix}X'_u & X'_v \\ Y'_u & Y'_v \end{vmatrix},\quad\frac{D(y,z)}{D(u,v)}=\begin{vmatrix}Y'_u & Y'_v \\ Z'_u & Z'_v \end{vmatrix},\quad\frac{D(z,x)}{D(u,v)}=\begin{vmatrix}Z'_u & Z'_v \\ X'_u & X'_v \end{vmatrix}</math>. Тогда:
- Нормаль в точке поверхности определяется выражением:
- <math>\frac{\left(\frac{D(y,z)}{D(u,v)};\,\frac{D(z,x)}{D(u,v)};\,\frac{D(x,y)}{D(u,v)}\right)}{\sqrt{\left(\frac{D(x,y)}{D(u,v)}\right)^2+\left(\frac{D(y,z)}{D(u,v)}\right)^2+\left(\frac{D(z,x)}{D(u,v)}\right)^2}}</math>
- Касательная плоскость в заданной точке может быть описана уравнением:
- <math>\frac{D(y,z)}{D(u,v)}_{u_0,v_0}(x-x_0)+\frac{D(z,x)}{D(u,v)}_{u_0,v_0}(y-y_0)+\frac{D(x,y)}{D(u,v)}_{u_0,v_0}(z-z_0)=0</math>
- Площадь параметрически заданной поверхности рассчитывается по формулам:
- <math>\iint\,\sqrt{\left(\frac{D(x,y)}{D(u,v)}\right)^2+\left(\frac{D(y,z)}{D(u,v)}\right)^2+\left(\frac{D(z,x)}{D(u,v)}\right)^2}\;\mathrm{d}u\,\mathrm{d}v</math>
- или
- <math>\iint\,\left|[\dot{r}_u\times\dot{r}_v]\right|\;\mathrm{d}\,u\;\mathrm{d}\,v</math>, где <math>\dot{r}_u=\left(\frac{\partial x}{\partial u},\,\frac{\partial y}{\partial u},\,\frac{\partial z}{\partial u}\right), \quad \dot{r}_v=\left(\frac{\partial x}{\partial v},\,\frac{\partial y}{\partial v},\,\frac{\partial z}{\partial v}\right)</math>
Литература