曲线曲面基础:1.隐式和参数表示

在几何造型中,两种最常用的曲线、曲面表示方法是隐式表示和参数表示方法。
xy平面上曲线可以用形如 f ( x , y ) = 0 f(x,y)=0 f(x,y)=0 的隐式方程来表示。这个方程隐含地描述了曲线上点的 x,y坐标之间所满足的关系。对于一条给定的曲线,除了差一个常数因子外,方程是唯一的。
在参数表示形式中,曲线上点的每个坐标分量均被表示为一个独立参数的显函数。
圆心位于原点的单位圆:

隐式方程: f ( x , y ) = x 2 + y 2 − 1 = 0 f(x,y) = x^{2}+ y^{2} -1 = 0 f(x,y)=x2+y21=0
参数方程: C ( u ) = ( x ( u ) , y ( u ) ) , a ⩽ u ⩽ b C(u) = (x(u),y(u)), a\leqslant u\leqslant b C(u)=(x(u),y(u)),aub

C ( u ) C(u) C(u)是一个独立变量 u u u的矢值函数, [ a , b ] [a,b] [a,b]可以是任意的,但通常将其归一化为 [ 0 , 1 ] [0,1] [0,1]

位于第一象限的圆弧采用参数形式可以表示为
{ x ( u ) = c o s ( u ) y ( u ) = s i n ( u ) 0 ⩽ u ⩽ π 2 ( 1.1 ) \begin{cases} x(u)=cos(u) \\ y(u) = sin(u)\end{cases} \quad 0\leqslant u\leqslant \frac{\pi}{2} \quad (1.1) {x(u)=cos(u)y(u)=sin(u)0u2π(1.1)

t = tan ⁡ ( u 2 ) t = \tan(\frac{u}{2}) t=tan(2u),得到另一种参数表示形式
{ x ( t ) = 1 − t 2 1 + t 2 y ( t ) = 2 t 1 + t 2 0 ⩽ t ⩽ 1 ( 1.2 ) \begin{cases} x(t)=\frac{1-t^2}{1+t^2} \\ y(t)=\frac{2t}{1+t^2}\end{cases} \quad 0\leqslant t\leqslant 1\quad(1.2) {x(t)=1+t21t2y(t)=1+t22t0t1(1.2)

因此,一条曲线的参数表示形式是不唯一的。
直观上,我们可以将曲线理解为质点运动所形成的轨迹,将参数 u u u看作时间变量, C ( u ) = ( x ( u ) , y ( u ) ) C(u) = (x(u),y(u)) C(u)=(x(u),y(u)) u u u时刻质点的位置矢量, [ a , b ] [a,b] [a,b]为时间区间。 C ( u ) C(u) C(u)的一阶和二阶导矢分别为速度和加速度。在几何上,一阶导矢也成为切矢。对方程(1.1)和方程(1.2)求导,得到速度函数

C ′ ( u ) = ( x ′ ( u ) , y ′ ( u ) ) = ( − sin ⁡ ( u ) , cos ⁡ ( u ) ) C ′ ( t ) = ( x ′ ( t ) , y ′ ( t ) ) = ( − 4 t ( 1 + t 2 ) 2 , 2 ( 1 − t 2 ) ( 1 + t 2 ) 2 ) \begin{gathered} \mathbf{C}^{\prime}(u)=(x^{\prime}(u),y^{\prime}(u))=(-\sin(u),\cos(u)) \\ \mathbf{C}^{\prime}(t)=(x^{\prime}(t),y^{\prime}(t))=\left({\frac{-4t}{(1+t^{2})^{2}}},{\frac{2(1-t^{2})}{(1+t^{2})^{2}}}\right) \end{gathered} C(u)=(x(u),y(u))=(sin(u),cos(u))C(t)=(x(t),y(t))=((1+t2)24t,(1+t2)22(1t2))
注意,速度矢量 C ′ ( u ) \mathbf{C}^{\prime}(u) C(u)的大小为常数

∣ C ′ ( u ) ∣ = sin ⁡ 2 ( u ) + cos ⁡ 2 ( u ) = 1 \mid\mathbf{C}'(u)\mid=\sqrt{\sin^2(u)+\cos^2(u)}=1 C(u)∣=sin2(u)+cos2(u) =1

即:虽然质点运动的方向随时间而变化,但其速率是一个常数。这种参数表示形式称为均匀参数化(uniform parametcrization)。

但是速度矢量 C ′ ( t ) \mathbf{C}^{\prime}(t) C(t)的大小不为常数,将 t = 0 t=0 t=0 t = 1 t=1 t=1代入 C ′ ( t ) \mathbf{C}^{\prime}(t) C(t)得: C ′ ( 0 ) = ( 0 , 2 ) \mathbf{C}^{\prime}(0)=(0,2) C(0)=(0,2) C ′ ( 1 ) = ( − 1 , 0 ) \mathbf{C}^{\prime}(1)=(-1,0) C(1)=(1,0),即:质点的初始速度是终止速度的2倍。

曲面的隐式方程具有形式 f ( x , y , z ) = 0 f(x,y,z)=0 f(x,y,z)=0。例如,球心在原点的单位球面可以用方程 x 2 + y 2 + z 2 − 1 = 0 x^{2} + y^{2} + z^{2} -1 = 0 x2+y2+z21=0来表示。该球面的一种参数表示形式(不唯一)为

S ( u , v ) = ( x ( u , v ) , y ( u , v ) , z ( u , v ) ) S(u,v)=(x(u,v),y(u,v),z(u,v)) 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 ⩽ π , 0 ⩽ v ⩽ 2 π ( 1.3 ) \begin{aligned} x(u,v)=\sin(u)\cos(v)\\ y(u,v)=\sin(u)\sin(v) \\ z(u,v)=\cos(u)\end{aligned} \quad 0\leqslant u\leqslant\pi, 0\leqslant v\leqslant2\pi \quad(1.3) x(u,v)=sin(u)cos(v)y(u,v)=sin(u)sin(v)z(u,v)=cos(u)0uπ,0v2π(1.3)

注意:在曲面的参数方程中,需要两个参数。固定 u u u不变,让 v v v变化,则产生球面的纬线;固定 v v v不变,让 u u u变化,则产生球面的经线。

S u ( u , v ) = ( x u ( u , v ) , y u ( u , v ) , z u ( u , v ) ) \textbf{S}_{u}(u,v)=\left(x_{u}(u,v),y_{u}(u,v),z_{u}(u,v)\right) Su(u,v)=(xu(u,v),yu(u,v),zu(u,v)) S v ( u , v ) = ( x v ( u , v ) , y v ( u , v ) , z v ( u , v ) ) \mathbf{S}_v(u,v)=(x_v(u,v),y_v(u,v),z_v(u,v)) Sv(u,v)=(xv(u,v),yv(u,v),zv(u,v)) S ( u , v ) S(u,v) S(u,v)的偏导矢,即:分别沿着经线和纬线的速度矢量。在曲面上任一点处,如果 S u × S v \mathbf{S}_{u} \times \mathbf{S}_{v} Su×Sv 不消失(即 S u × S v \mathbf{S}_{u} \times \mathbf{S}_{v} Su×Sv 为非零矢量),则曲面在该点处的单位法矢 N N N可由下式给出

N = S u × S v ∣ S u × S v ∣ ( 1.4 ) \mathbf{N}={\frac{\mathbf{S}_{u}\times\mathbf{S}_{v}}{\mid\mathbf{S}_{u}\times\mathbf{S}_{v}\mid}} \quad (1.4) N=Su×SvSu×Sv(1.4)

曲面在一点处存在法矢及相应切平面是曲面的几何性质。和曲面的参数化无关。因此,尽管不同的参数化会产生不同的偏导矢,但只要 ( 1.4 ) (1.4) (1.4)式中的分母不为零,则按 ( 1.4 ) (1.4) (1.4)式得到的 N N N都是相同的。由 ( 1.3 ) (1.3) (1.3)式容易发现,对于所有的 v ( 0 ⩽ v ≤ 2 π ) v(0\leqslant v≤2\pi) v(0v2π) S v ( 0 , v ) = S v ( π , v ) = 0 \mathbf{S}_{v}(0,v)=\mathbf{S}_{v}(_{\pi},v)=0 Sv(0,v)=Sv(π,v)=0,即: S v \mathbf{S}_{v} Sv在球面的北极和南极消失(为零矢量)。很明显,球面在两个极点的法矢确实是存在的,但在这种参数化之下,无法用 ( 1.4 ) (1.4) (1.4)式来计算它们。

对于隐式表示形式和参数表示形式,很难断言其中一种总是比另一种好,它们各有自己的优点和缺点。一个成功的几何造型系统往往同时用到以上两种技术。一下对这两种表示方法做一个比较:

  • 通过增加一个 z z z坐标,很容易将参数方法推广到三维空间中任意曲线的表示,即: C ( u ) = ( x ( u ) , y ( u ) , z ( u ) ) \mathbf{C}(u)=(x(u),y(u),z(u)) C(u)=(x(u),y(u),z(u));而隐式方法只能用来表示 x y xy xy(或 x z xz xz y z yz yz)平面上的曲线。
  • 用隐式方法表示有界的曲线段(或曲面片)是很不方便的,而在参数表示形式中,曲线(或曲面)的有界性由参数区间的有界性自然得到。另一方面,无界的几何元素(例如,由 f ( x , y ) = a x + b y + c = 0 f(x,y)=ax+by+c=0 f(x,y)=ax+by+c=0所定义的直线)利用参数方法表示也是不方便的。
  • 曲线的参数表示同时给出了曲线的一个方向(设 a ⩽ u ⩽ b a\leqslant u\leqslant b aub,方向为从 C ( a ) C(a) C(a) C ( b ) C(b) C(b);而隐式则不然。因此,利用参数表示形式,很容易生成曲线上的有序点列。类似地,根据曲面的参数方程很容易生成曲面上的网格点。
  • 在利用计算机进行形状设计和表示时,参数形式更直观、自然。在很多参数表示形式(如Bezier和B样条)中,系数具有相当重要的几何意义。这导致直观的设计方法和具有几何特色、数值稳定的算法。
  • 许多几何操作的计算复杂度极大地依赖于所采用的表示方法。两个典型的例子是:当计算曲线或曲面上点的位置时,采用隐式表示形式是很困难的。当给定一个点,要判断它是否在曲线或曲面上时,采用参数形式是困难的。
  • 当采用参数形式时,经常需要处理由参数化引起的奇异性,而这种奇异性并不是由于本身的几何特性引起的。一个这样的例子时由(1.3)式表示的单位球面。按参数方程,它的两个极点是奇点,处理时较为复杂。但在几何上,两个极点和球面上的其他点并无不同之处
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值