贝塞尔曲线和B样条曲线(优质参考)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§4.3 贝塞尔曲线和B 样条曲线
在前面讨论的抛物样条和三次参数样条曲线,他们的共同特点是:生成的曲线通过所有给定的型值点。我们称之为“点点通过”。但在实际工作中,往往给出的型值点并不是十分精确,有的点仅仅是出于外观上的考虑。在这样的前提下,用精确的插值方法去一点点地插值运算就很不合算;另外,局部修改某些型值点,希望涉及到曲线的范围越小越好,这也是评价一种拟合方法好坏的指标之一。
针对以上要求,法国人Bezier 提出了一种参数曲线表示方法,称之为贝塞尔曲线。后来又经Gorgon, Riesenfeld 和Forrest 等人加以发展成为B 样条曲线。 一、
贝塞尔曲线
贝塞尔曲线是通过一组多边折线的各顶点来定义。在各顶点中,曲线经过第一点和最后一点,其余各点则定义曲线的导数、阶次和形状。第一条和最后一条则表示曲线起点和终点的切线方向。
1.数学表达式
n+1个顶点定义一个n 次贝塞尔曲线,其表达式为:
)()(0,t B p t p n
i n i i ∑== 10≤≤t
),...,2,1,0(n i p i =为各顶点的位置向量,)(,t B n i 为伯恩斯坦基函数
i n i n i t t n i n t B ---=
)1()!
1(!!
)(,
2.二次贝塞尔曲线
需要3个顶点,即210,,p p p ,将其代入曲线表达式:
2,222,112,00)(B p B p B p t p ++=
220202,021)1()
1()!
02(!0!
2t t t t t B +-=-=--=
-
21212,122)1(2)1()!
12(!1!
2t t t t t t B -=-=--=
-
22222,2)1()!
22(!2!
2t t t B =--=
-
221202)22()21()(p t p t t p t t t p +-++-=
[
]
⎥⎥
⎥⎦
⎤
⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=2102
0010221211p p p t t 10≤≤t 2102)21(2)1(2)(tp p t p t t p +-+-='
)(222)0(0110p p p p p -=+-=' 0)0(p p =
)(222)1(1221p p p p p -=+-=' 2)1(p p =
当2
1
=
t 时: 21021041214141)412212()412121(21p p p p p p p ++=+⋅-⋅++⋅-=⎪⎭
⎫
⎝⎛
)](2
1
[21201p p p ++= 02210212)2121(2)121(221p p p p p p -=⋅+⋅-+-=⎪⎭
⎫
⎝⎛'
3.三次贝塞尔曲线
三次贝塞尔曲线需要4个点,即0p 、1p 、2p 、3p 。
)()()()()(3,333,223,113,00t B p t B p t B p t B p t p +++=
其中:3230303,0331)1()1()!
03(!0!
3t t t t t t B -+-=-=-⋅⋅-=
-
3221313,1363)1(3)1()!
13(!1!
3t t t t t t t B +-=-=-⋅⋅-=
-
32122323,233)1(3)1()!
23(!2!
3t t t t t t B -=-=-⋅⋅-=
-
33333,3)1()!
33(!3!
3t t t B =-⋅⋅-=
-
33232132032)33()363()331()(p t p t t p t t t p t t t t p +-++-+-+-=
[
]
⎥⎥⎥⎥⎦
⎤
⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢
⎢⎢
⎢⎣⎡----=32102
3
0001
0033036313311)(p p p p t t t t p 10≤≤t 贝塞尔曲线特点:
1.n 个顶点定义n-1次曲线,当顶点数较大时,拟合的曲线阶次太高。
2.任一顶点对整条曲线的形状都有关系,不利于局部修改。
二、B 样条曲线
用B 样条曲线基函数替代伯恩斯坦基函数。 1.数学表达式
通常,给定m+n+1个顶点),,1,0(n m i p i +=K 可以定义m+1段n 次参数函数为:
)()(0,,t F p t p n
k n k k i n i ∑=+= (10≤≤t ),),,1,0(m i K =
其中)(,t F n k 为B 样条分段混合函数,形式为:
)()1(!1)(0
1,j k n t C n t F k
n j j n j n k --+-=∑-=+
• 段数、次数 段数=节点数-次数,每段曲线与n+1个点有关;
• )!
(!!
n m n m C n m
-=
2.二次B 样条曲线 n=2,k=0,1,2
n i n i n i i F p F p F p t p ,22,11,0)(++++=
∑-=--+-=0
20
23,0)02()1(!21j j j n
j t C F 2
2
22120)1(21
)!
23(!2!3)1()1()!13(!1!3)1()2()!03(!0!3)1[(21-=--++--++--=t t t t
∑-=--+-=1
20
232
,1)12()1(21j j j j t C F )122(21
])11()!
13(!1!3)1()1()!03(!0!3)1[(2122120++-=-+--++--=t t t t
22000232
,22
1)!13(!1!3)1(21)22()1(21t t j t C F j j j =--=--+-=∑= 221222
1
)122(21)1(21)(+++++-+-=
i i i i p t p t t p t t p 21)12()1()(++++-+-='i i i i tp p t p t t p
)(21
)0(1++=
i i p p p )(21
)1(21+++=i i p p p
i i p p p -='+1)0(