内容发布更新时间 : 2025/1/6 17:08:35星期一 下面是文章的全部内容请认真阅读。
资料收集于网络,如有侵权 请联系网站删除只供学习与交流
§4.3 贝塞尔曲线和B样条曲线
在前面讨论的抛物样条和三次参数样条曲线,他们的共同特点是:生成的曲线通过所有给定的型值点。我们称之为“点点通过”。但在实际工作中,往往给出的型值点并不是十分精确,有的点仅仅是出于外观上的考虑。在这样的前提下,用精确的插值方法去一点点地插值运算就很不合算;另外,局部修改某些型值点,希望涉及到曲线的范围越小越好,这也是评价一种拟合方法好坏的指标之一。
针对以上要求,法国人Bezier提出了一种参数曲线表示方法,称之为贝塞尔曲线。后来又经Gorgon, Riesenfeld和Forrest等人加以发展成为B样条曲线。 一、
贝塞尔曲线
贝塞尔曲线是通过一组多边折线的各顶点来定义。在各顶点中,曲线经过第一点和最后一点,其余各点则定义曲线的导数、阶次和形状。第一条和最后一条则表示曲线起点和终点的切线方向。
1.数学表达式
n+1个顶点定义一个n次贝塞尔曲线,其表达式为:
p(t)??piBi,n(t) 0?t?1
i?0npi(i?0,1,2,...,n)为各顶点的位置向量,Bi,n(t)为伯恩斯坦基函数
Bi,n(t)?n!ti(1?t)n?i
i!(n?1)!
2.二次贝塞尔曲线
需要3个顶点,即p0,p1,p2,将其代入曲线表达式:
p(t)?p0B0,2?p1B1,2?p2B2,2
只供学习与交流
资料收集于网络,如有侵权 请联系网站删除只供学习与交流
B0,2?2!t0(1?t)2?0?(1?t)2?1?2t?t2
0!(2?0)!2!t1(1?t)2?1?2t(1?t)?2t?2t2
1!(2?1)!2!t2(1?t)2?2?t2
2!(2?2)!B1,2?B2,2?p(t)?(1?2t?t2)p0?(2t?2t2)p1?t2p2
?t2??1?21??p0???p? 0?t?1 t1??220???1??00??1???p2???p?(t)?2(t?1)p0?2(1?2t)p1?2tp2
p?(0)??2p0?2p1?2(p1?p0) p(0)?p0
p?(1)??2p1?2p2?2(p2?p1) p(1)?p2
当t?1时: 211111111?1?p???(1?2??)p0?(2??2?)p1?p2?p0?p1?p2
24244424?2?11?[p1?(p0?p2)] 22111?1?p????2(?1)p0?2(1?2?)p1?2?p2?p2?p0
222?2?
只供学习与交流
资料收集于网络,如有侵权 请联系网站删除只供学习与交流
3.三次贝塞尔曲线
三次贝塞尔曲线需要4个点,即p0、p1、p2、p3。
p(t)?p0B0,3(t)?p1B1,3(t)?p2B2,3(t)?p3B3,3(t)
其中:B0,3?3!?t0?(1?t)3?0?(1?t)3?1?3t?3t2?t3
0!(3?0)!B1,3?3!?t1?(1?t)3?1?3t(1?t)2?3t?6t2?3t3
1!(3?1)!3!?t2?(1?t)3?2?3t2(1?t)1?3t2?3t3
2!(3?2)!3!?t3?(1?t)3?3?t3
3!(3?3)!B2,3?B3,3?p(t)?(1?3t?3t2?t3)p0?(3t?6t2?3t3)p1?(3t2?3t3)p2?t3p3
p(t)?t3?t2??13?3?3?63t1???330?00?1?1??p0??p?0???1? 0?t?1 0??p2????0??p3?贝塞尔曲线特点:
1.n个顶点定义n-1次曲线,当顶点数较大时,拟合的曲线阶次太高。 2.任一顶点对整条曲线的形状都有关系,不利于局部修改。
二、B样条曲线
用B样条曲线基函数替代伯恩斯坦基函数。 1.数学表达式
通常,给定m+n+1个顶点pi(i?0,1,?,m?n)可以定义m+1段n次参数函数为:
pi,n(t)??pi?kFk,n(t) (0?t?1),(i?0,1,?,m)
k?0n其中Fk,n(t)为B样条分段混合函数,形式为:
只供学习与交流