三次Bezier曲线的生成与拼接
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三次Bezier曲线的生成与拼接
李红林
【摘要】本文利用VC++编程环境,生成两段三次Bezier曲线,并对曲线进行连续
性条件讨论,且实现了曲线拼接.
【期刊名称】《科技视界》
【年(卷),期】2016(000)021
【总页数】2页(P126,187)
【关键词】三次;Bezier;连续性;曲线拼接
【作者】李红林
【作者单位】曲靖师范学院信息工程学院,云南曲靖655011
【正文语种】中文
Bezier曲线是由法国人Bezier于20世纪70年代初为解决汽车外型设计而提出的一种新的参数表示方法[1]。
Bezier方法是曲线、曲面造型中的一个里程碑,它以
逼近原理为基础,应用Bezier方法,可逼近数学曲线、曲面或设计师勾画的草图,起到辅助设计的作用[2-3]。
由于实际应用中的线和面形状复杂,用单一曲线、曲
面无法表示,所以有必要对曲线、曲面进行拼接。
1.1 Bezier曲线的定义其中,t∈[0,1],Pi是特征多边形第i个顶点的坐标(xi,yi)。
依次用线段连接Pi(i=0,1,…,n)中相邻两个向量的终点,组成的n边折线多边形称为Bezier多边形或特征多边形[4]。
Bi,n(t)是伯恩斯坦多项式。
1.2 三次Bezier曲线
当n=3时,即为三次Bezier曲线。
三次Bezier曲线用矩阵表示如下:
在VC++6.0环境下,新建一个基于MFC的单文档工程。
在工程View.cpp中添加Bezier曲线生成函数,当n=3时,生成任意两条三次Bezier曲线,如图1所示。
样条曲线是由各个多项式曲线段连接而成,为了保证各个曲线段在连接点处是光滑的,需要满足各种连续性条件[5]。
连续性有参数连续性和几何连续性。
若两条相邻参数曲线段在连接点处具有n阶连续导矢,即n阶连续可微,则将这类连续性称为n阶参数连续性条件,记为Cn。
若只要求两条相邻参数曲线段在连接点处的n阶导矢成比例,而不要求必须相等,则将这类连续性称为n阶几何连续性,记为Gn。
因参数连续性条件比几何连续性条件更加苛刻一些。
所以,在三次Bezier曲线拼接时以几何连续性为例。
设两条三次Bezier曲线的控制点列分别为Pi(i=0,1,2,3)和Qj(j =0,1,2,3)。
若将P(t)段与Q(t)相连,则在连接点处达到G0、G1、G2连续的充要条件是:
(1)G0连续:P(1)=Q(0)。
即P(t)的终点与Q(t)的起点重合,如图2所示,曲线在连接点处不能保证是光滑连接。
(2)G1连续:是两段相邻曲线在连接点处不仅达到G0连续,同时一阶导数成比例,即P’(1)=αQ’(0),其中α是比例系数。
具有G1连续,在连接点处有公共的切矢方向,即P2,P3(Q0),Q1三点共线,如图3所示。
(3)G2连续:指两段相邻曲线段的一阶导数、二阶导数在交点处均成比例。
P’(1)=αQ’(0),P’’(1)=βQ’’(0)。
G2连续除了满足G1条件外,还满足:副法矢方向相同、曲率相等。
本文首先对三次Bezier曲线进行了简单分析与实现;其次对曲线的连续性进行分
析;最后对生成的三次Bezier曲线进行拼接。
该拼接方法可实现任意次的Bezier 曲线的拼接。
【相关文献】
[1]杜晓增,丁宇辰.计算机图形学基础[M].2版.北京:机械工业出版社,2013:103.
[2]严兰兰,宋来忠,李军成.有理Bezier曲线的拼接[J].三峡大学学报:自然科学版,2005,27(5):469-471.
[3]杨林英.Bezier曲线的拼接及扩展[D].兰州:西北师范大学,2013.
[4]芦殿军.Bezier曲线的拼接及其连续性[J].青海大学学报:自然科学版,2004,22 (6):84-86. [5]银红霞,杜四春,蔡立军.计算机图形学[M].北京:水利水电出版社,2005:133-134.。