赞
踩
曲线和曲面的表示方程有参数表示和非参数表示之分,非参数表示又分为显示表示和隐式表示。
对于一个平面曲线,显示表示一般形式是: y = f ( x ) y=f(x) y=f(x)
在此方程中,一个 x x x值与一个 y y y值对应,所以显示方程不能表示封闭或多值曲线
如果一个平面曲线方程,表示成 f ( x , y ) = 0 f(x,y)=0 f(x,y)=0的形式,称之为隐式表示。隐式表示的优点是易于判断一个点是否在曲线上
(1)与坐标轴相关
(2)用隐函数表示不直观,作图不方便
(3)用显函数表示存在多值性
(4)会出现斜率为无穷大的情形
为了解决2的问题,可以采用参数方程
为了克服以上问题,曲线曲面方程通常表示成参数的形式,假定用 t t t表示参数,
平面曲线上任一点P可表示为: p ( t ) = [ x ( t ) , y ( t ) ] p(t)=[x(t),y(t)] p(t)=[x(t),y(t)]
空间曲线上任一三维点P可表示为: p ( t ) = [ x ( t ) , y ( t ) , z ( t ) ] p(t)=[x(t),y(t),z(t)] p(t)=[x(t),y(t),z(t)]
它等价于笛卡尔分量表示: p ( t ) = x ( t ) i + y ( t ) j + z ( t ) k p(t)=x(t)i+y(t)j+z(t)k p(t)=x(t)i+y(t)j+z(t)k
这样,给定一个 t t t值,就得到曲线上一点的坐标
假设曲线段对应的参数区间为
[
a
,
b
]
[a,b]
[a,b],即
a
≤
t
≤
b
a≤t≤b
a≤t≤b。为方便区间,可以将区间
[
a
,
b
]
[a,b]
[a,b]规范化成
[
0
,
1
]
[0,1]
[0,1],参数变换为:
t
′
=
t
−
a
b
−
a
t'=\frac{t-a}{b-a}
t′=b−at−a
当取
t
=
a
t=a
t=a时,
t
′
=
0
t'=0
t′=0,当
t
=
b
t=b
t=b时,
t
′
=
1
t'=1
t′=1,因此这就实现了将区间
[
a
,
b
]
[a,b]
[a,b]规范化成
[
0
,
1
]
[0,1]
[0,1]
参数曲线一般可写成: p = p ( t ) , t ∈ [ 0 , 1 ] p=p(t),t\in[0,1] p=p(t),t∈[0,1]
类似地,可把曲面表示成为双参数 u u u和 v v v的矢量函数
$p(u,v)=p(x(u,v),y(u,v),z(u,v))\ \ (u,v)\in[0,1]×[0,1] $
最简单的参数曲线是直线段,端点
P
1
,
P
2
P_1,P_2
P1,P2的直线段参数方程可表示为:
p
(
t
)
=
p
1
+
(
p
2
−
p
1
)
t
,
t
∈
[
0
,
1
]
p(t)=p_1+(p_2-p_1)t,\ t\in[0,1]
p(t)=p1+(p2−p1)t, t∈[0,1]
在曲线、曲面的表示上,参数方程比显示、隐式方程有更多的优越性,主要表现在:
可以满足几何不变性的要求
即指形状的数学表示及其所表达的形状不随所取坐标系而改变的性质(跟 x y z xyz xyz坐标没有关系,只跟参数 t t t有关)
有更大的自由度来控制曲线、曲面的形状
如 y = a x 3 + b x 2 + c x + d y=ax^3+bx^2+cx+d y=ax3+bx2+cx+d只有4个系数控制曲线的形状。
而二维三次曲线的参数表达式为:
p
(
t
)
=
[
a
1
t
3
+
a
2
t
2
+
a
3
t
+
a
4
b
1
t
3
+
b
2
t
2
+
b
3
t
+
b
4
]
t
∈
(
0
,
1
)
p(t)=[a1t3+a2t2+a3t+a4b1t3+b2t2+b3t+b4]
有8个系数,所以由更大的自由度来控制曲线的形状
直接对参数方程进行几何变换
对非参数方程表示的曲线、曲面进行变换,必须对曲线、曲面上的每个型值点进行几何变换;而对参数表示的曲线、曲面可对其参数方程直接进行几何变换
便于处理斜率为无穷大的情形,不会因此而中断计算
界定曲线、曲面的范围十分简单
具有规格化的参数变量 t ∈ [ 0 , 1 ] t\in[0,1] t∈[0,1]
易于用向量(矢量)和矩阵运算,简化计算
微分几何是用微分的方法来研究曲线的局部性质,如曲线的弯曲程度等
一条用参数表示的三维曲线是一个有界点集,可写成一个带参数的、连续的、单值的数学函数,其形式:
{
x
=
x
(
t
)
y
=
y
(
t
)
z
=
z
(
t
)
0
≤
t
≤
1
{x=x(t)y=y(t)z=z(t)
p = p ( t ) t ∈ [ 0 , 1 ] p ′ ( t ) = d P d t p ′ ′ ( t ) = d 2 P d t 2 p=p(t)\ \ \ t\in[0,1]\\ p'(t)=\frac{dP}{dt}\ \ \ p''(t)=\frac{d^2P}{dt^2} p=p(t) t∈[0,1]p′(t)=dtdP p′′(t)=dt2d2P
曲线上任一点的位置矢量可表示为:
p ( t ) = [ x ( t ) , y ( t ) , z ( t ) ] p(t)=[x(t),y(t),z(t)] p(t)=[x(t),y(t),z(t)]
选择弧长
s
s
s作为参数,当
Δ
t
→
0
\Delta t\to0
Δt→0时,弧长
Δ
s
→
0
\Delta s\to0
Δs→0,但方向不能趋向于0
T
=
d
P
d
s
=
lim
Δ
s
→
0
Δ
P
Δ
s
单
位
矢
量
T=\frac{dP}{ds}=\lim_{\Delta s\to 0}\frac{\Delta P}{\Delta s}\ \ \ 单位矢量
T=dsdP=Δs→0limΔsΔP 单位矢量
根据弧长微分公式有:
(
d
s
)
2
=
(
d
x
)
2
+
(
d
y
)
2
+
(
d
z
)
2
(ds)^2=(dx)^2+(dy)^2+(dz)^2
(ds)2=(dx)2+(dy)2+(dz)2
引入参数
t
t
t,可改写成:
(
d
s
/
d
t
)
2
=
(
d
x
/
d
t
)
2
+
(
d
y
/
d
t
)
2
+
(
d
z
/
d
t
)
2
=
∣
P
′
(
t
)
∣
2
T
=
d
P
d
s
=
d
P
d
t
⋅
d
t
d
s
=
P
′
(
t
)
∣
P
′
(
t
)
∣
即
T
是
单
位
切
矢
量
(ds/dt)^2=(dx/dt)^2+(dy/dt)^2+(dz/dt)^2=|P'(t)|^2\\ T=\frac{dP}{ds}=\frac{dP}{dt}·\frac{dt}{ds}=\frac{P'(t)}{|P'(t)|}\ \ \ 即T是单位切矢量
(ds/dt)2=(dx/dt)2+(dy/dt)2+(dz/dt)2=∣P′(t)∣2T=dsdP=dtdP⋅dsdt=∣P′(t)∣P′(t) 即T是单位切矢量
切向量求导,求导以后还是一个向量,称为曲率,其几何意义是曲线的单位切向量对弧长的转动率,即刻画这一点的曲线的弯曲程度
k
=
∣
T
′
∣
=
lim
Δ
s
→
0
∣
Δ
T
Δ
s
∣
=
lim
Δ
s
→
0
∣
T
(
s
+
Δ
s
)
−
T
(
s
)
Δ
s
∣
=
lim
Δ
s
→
0
∣
Δ
θ
Δ
s
∣
k=|T'|=\lim_{\Delta s\to0}|\frac{\Delta T}{\Delta s}|=\lim_{\Delta s\to0}|\frac{T(s+\Delta s)-T(s)}{\Delta s}|=\lim_{\Delta s\to 0}|\frac{\Delta \theta}{\Delta s}|
k=∣T′∣=Δs→0lim∣ΔsΔT∣=Δs→0lim∣ΔsT(s+Δs)−T(s)∣=Δs→0lim∣ΔsΔθ∣
曲率越大,表示曲线的弯曲程度越大
曲率k的倒数 ρ = 1 k \rho=\frac{1}{k} ρ=k1称为曲率半径
曲率半径越大,圆弧越平缓,弯曲程度越平滑
曲率半径越小,圆弧越陡,弯曲程度越陡
法矢量是与切矢量垂直的向量
N、B构成的平面称为法平面,N、T构成的平面称为密切平面,B、T构成的平面称为从切平面
T(切矢)、N(主法矢)和B(副法矢)构成了曲线上的活动坐标架,其中,B=T×N(叉乘)
空间曲线不但要弯曲,而且还要扭曲,即要离开它的密切平面。为了能刻画这一扭曲程度,等价于去研究密切平面的法矢量(即曲线的副法矢量)关于弧长的变化率
挠率*
τ
\tau
τ* 的绝对值等于副法线方向(或密切平面法矢量)对于弧长的转动率:
∣
τ
∣
=
lim
Δ
s
∣
Δ
θ
Δ
s
∣
|\tau|=\lim_{\Delta s}|\frac{\Delta \theta}{\Delta s}|
∣τ∣=Δslim∣ΔsΔθ∣
自由曲线和自由曲面一般通过少数分散的点生成,这些点叫做“型值点”、“样本点”或“控制点”
给定一组有序的数据点 P i ( i = 0 , 1 , 2 , . . . , n ) P_i(i=0,1,2,...,n) Pi(i=0,1,2,...,n),要求构造一条曲线顺序通过这些数据点,称为对这些数据点进行插值(interpolation),所构造的曲线称为插值曲线
把曲线插值推广到曲面,类似地就有插值曲面
构造插值曲线曲面所采用的的数学方法称为曲线曲面插值法
假设给定函数 f ( x ) f(x) f(x)在两个不同点 x 1 x_1 x1和 x 2 x_2 x2的值,用一个线性函数: y = a x + b y=ax+b y=ax+b,近似代替,称为线性插值函数
已知三个点的坐标,要求构造一个抛物线函数
φ ( x ) = a x 2 + b x + c \varphi(x)=ax^2+bx+c φ(x)=ax2+bx+c,但是该函数必须通过这些型值点或者样本点
构造一条曲线使之在某种意义下最接近给定的数据点(但未必通过这些点),所构造的曲线为拟合曲线
在计算数学中,逼近通常指用一些性质比较好的函数近似表示一些性质不好的函数。在计算机图形学中,逼近继承了这方面的含义,因此插值和拟合都可以视为逼近
对于逼近样条,连接控制点序列的折线通常被显示出来,以提醒设计者控制点的次序
一般将连接有一定次序控制点的直线序列称为控制多边形或特征多边形
控制多边形的第一个顶点和最后一个顶点位于曲线上,多边形的第一条边和最后一条边表示了曲线在起点和终点的切矢量方向,其它顶点则用于定义曲线的导数、阶次和形状。曲线的形状趋近于控制多边形并位于多边形所构成的凸包内,改变控制多边形的顶点位置就会改变曲线的形状。
Bezier曲线的直观交互性使得对设计对象的逼近达到了直接的几何化程度,使用起来非常方便,如下图所示。
指曲线的拐点不能太多(有一、二阶导数等)
在数学领域是指:凸曲线与凹曲线的连接点
对平面曲线而言,相对光顺的条件是:
a. 具有二阶几何连续性( G 2 G^2 G2)
b. 不存在多余拐点和奇异点(奇点)
c. 曲率变化较小
奇点:是一未定义的点,或当它在特别地情况下无法完序,以至于此点出现于异常的集合中。比如 f ( x ) = 1 x f(x)=\frac{1}{x} f(x)=x1中 有一奇点(0,0),因为在此处 x = 0 x=0 x=0无意义
给定
n
+
1
n+1
n+1个控制点
P
i
(
i
=
0
,
1
,
2
,
.
.
.
.
.
n
)
P_i(i=0,1,2,.....n)
Pi(i=0,1,2,.....n),则
n
n
n次
B
e
z
i
e
r
Bezier
Bezier曲线定义为:
p
(
t
)
=
∑
i
=
0
n
P
i
B
i
,
n
(
t
)
,
t
∈
[
0
,
1
]
(
1
)
p(t)=\sum_{i=0}^nP_iB_{i,n}(t),t\in[0,1] \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (1)
p(t)=i=0∑nPiBi,n(t),t∈[0,1] (1)
式中,
P
i
(
i
=
0
,
1
,
2
,
.
.
.
,
n
)
P_i(i=0,1,2,...,n)
Pi(i=0,1,2,...,n)是控制多边形的
n
+
1
n+1
n+1个控制点
B i , n ( t ) B_{i,n}(t) Bi,n(t)是 B e r n s t e i n Bernstein Bernstein基函数,其表达式为 B i , n ( t ) = n ! i ! ( n − i ) ! t i ( 1 − t ) n − i = C n i t i ( 1 − t ) n − i , ( i = 0 , 1 , 2 , . . . , n ) ( 2 ) B_{i,n}(t)=\frac{n!}{i!(n-i)!}t^i(1-t)^{n-i}=C_n^it^i(1-t)^{n-i},(i=0,1,2,...,n) \ \ \ \ (2) Bi,n(t)=i!(n−i)!n!ti(1−t)n−i=Cniti(1−t)n−i,(i=0,1,2,...,n) (2)
从式 ( 1 ) (1) (1)可以看出, B e z i e r Bezier Bezier函数是控制点关于 B e r n s t e i n Bernstein Bernstein基函数的加权和。 B e z i e r Bezier Bezier曲线的次数为 n n n,需要 n + 1 n+1 n+1个顶点来定义。
在工程项目中,最常用的三次 B e z i e r Bezier Bezier曲线,其次是二次 B e z i e r Bezier Bezier曲线,高次 B e z i e r Bezier Bezier曲线一般很少使用。
当
n
=
1
n=1
n=1时,
B
e
z
i
e
r
Bezier
Bezier曲线的控制多边形有两个控制点
P
0
和
P
1
P_0和P_1
P0和P1,
B
e
z
i
e
r
Bezier
Bezier曲线是一次多项式,称为一次
B
e
z
i
e
r
Bezier
Bezier曲线(
l
i
n
e
a
r
b
e
z
i
e
r
c
u
r
v
e
linear\ \ bezier\ \ curve
linear bezier curve)。
p
(
t
)
=
∑
i
=
0
1
P
i
B
i
,
1
(
t
)
=
(
1
−
t
)
P
0
+
t
P
1
p(t)=\sum_{i=0}^1P_iB_{i,1}(t)=(1-t)P_0+tP_1
p(t)=i=0∑1PiBi,1(t)=(1−t)P0+tP1
当
n
=
2
n=2
n=2时,
B
e
z
i
e
r
Bezier
Bezier曲线的控制多边形有三个控制点
P
0
、
P
1
P_0、P_1
P0、P1和
P
2
P_2
P2,
B
e
z
i
e
r
Bezier
Bezier曲线是二次多项式,称为二次
B
e
z
i
e
r
Bezier
Bezier曲线(
q
u
a
d
r
a
t
i
c
b
e
z
i
e
r
c
u
r
v
e
quadratic\ \ bezier\ \ curve
quadratic bezier curve)。
p
(
t
)
=
∑
i
=
0
2
P
i
B
i
,
2
(
t
)
=
(
1
−
t
)
2
P
0
+
2
t
(
1
−
t
)
P
1
+
t
2
P
2
p(t)=\sum_{i=0}^2P_iB_{i,2}(t)=(1-t)^2P_0+2t(1-t)P_1+t^2P_2
p(t)=i=0∑2PiBi,2(t)=(1−t)2P0+2t(1−t)P1+t2P2
性质1.正权性
正性(非负性)+权性
由正性+权性(凸组合)可以推出Bezier曲线的凸包性
样条曲线的凸包性是指其混合函数的凸包性。混合函数的凸包性定义如下: 若将混合函数解释为权重,对于参变量 t 的任意取值,所有权重的和始终为 1, 则曲线的混合函数具有凸包性。若样条曲线的混合函数具有凸包性,相对于不具备此特性的样条曲线,其局部控制更灵敏。
性质2.基性
性质3.递推公式
基函数的递推公式
B i n ( t ) = ( 1 − t ) B i ( n − 1 ) ( t ) + t B i − 1 ( n − 1 ) ( t ) B_i^n(t)=(1-t)B_i^{(n-1)}(t)+tB_{i-1}^{(n-1)}(t) Bin(t)=(1−t)Bi(n−1)(t)+tBi−1(n−1)(t),其中 B 0 0 ( t ) = 1 , B i n ( t ) = 0 若 i ∉ { 0 , . . . , n } B_0^0(t)=1,B_i^n(t)=0若i\notin\{0,...,n\} B00(t)=1,Bin(t)=0若i∈/{0,...,n}
由递推公式 C n m = C n − 1 m + C n − 1 m − 1 C_n^m=C^m_{n−1}+C^{m−1}_{n−1} Cnm=Cn−1m+Cn−1m−1求得。公式推导详见组合数的性质
高阶的基函数由2个低阶的基函数"升阶"得到
性质4.端点插值
性质5.导数
B e z i e r 曲 线 的 端 点 性 质 Bezier曲线的端点性质 Bezier曲线的端点性质:
端点插值: f ( 0 ) = p 0 , f ( 1 ) = p 3 f(0)=p_0,f(1)=p_3 f(0)=p0,f(1)=p3
端点的切线方向与边相同: f ′ ( 0 ) = n [ p 1 − p 0 ] , f ′ ( 1 ) = n [ p n − p n − 1 ] f'(0)=n[p_1-p_0],f'(1)=n[p_n-p_{n-1}] f′(0)=n[p1−p0],f′(1)=n[pn−pn−1],其中n为曲线阶数
端点的2阶(k)切线与3点(k+1)相关:
f ′ ′ ( 0 ) = n ( n − 1 ) [ p 2 − 2 p 1 + p 0 ] = 2 n ( n − 1 ) [ p 2 + p 0 2 − p 1 ] f''(0)=n(n-1)[p_2-2p_1+p_0]=2n(n-1)[\frac{p_2+p_0}{2}-p_1] f′′(0)=n(n−1)[p2−2p1+p0]=2n(n−1)[2p2+p0−p1]
f ′ ′ ( 1 ) = n ( n − 1 ) [ p n − 2 p n − 1 + p n − 2 ] = 2 n ( n − 1 ) [ p n + p n − 2 2 − p n − 1 ] f''(1)=n(n-1)[p_n-2p_{n-1}+p_{n-2}]=2n(n-1)[\frac{p_{n}+p_{n-2}}{2}-p_{n-1}] f′′(1)=n(n−1)[pn−2pn−1+pn−2]=2n(n−1)[2pn+pn−2−pn−1]
性质6.升阶
升阶:控制顶点变多,但是 B e z i e r Bezier Bezier曲线不变
三次
B
e
z
i
e
r
Bezier
Bezier曲线有:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。