基于德卡斯特里奥算法的贝塞尔曲线曲面拟合方法及系统的制作方法

文档序号:6626996阅读:1092来源:国知局
基于德卡斯特里奥算法的贝塞尔曲线曲面拟合方法及系统的制作方法
【专利摘要】本发明公开了一种基于德卡斯特里奥算法的含参贝塞尔曲线曲面拟合方法及系统,包括:获取贝塞尔曲线的n个型值点,通过所述贝塞尔曲线的n个型值点,根据德卡斯特里奥算法获取2×(n-2)个控制点;在所述控制点上设置控制系数,通过改变所述控制系数调节所述贝塞尔曲线在所述型值点处的曲率,并确定所述曲率为目标曲率时的控制系数,获取拟合后的贝塞尔曲线。该方法实现了通过改变控制系数对贝塞尔曲线曲面进行拟合,根据实际应用,能够在选取较少的型值点的同时,拟合出仿形程度高的Bezier曲线,且保证该曲线能够通过所有型值点,并在型值点处保证了该曲线的连续性,在曲面拟合方面,降低了复杂度,提高了拟合效率。
【专利说明】基于德卡斯特里奥算法的贝塞尔曲线曲面拟合方法及系统

【技术领域】
[0001] 本发明涉及计算机图形学领域,具体涉及一种基于德卡斯特里奥算法的贝塞尔曲 线曲面拟合方法及系统。

【背景技术】
[0002] 贝塞尔Bezier曲线是一条通过起始,末尾控制点的曲线,并且可通过中间控制点 来调整曲线的形状。随着Bezier曲线的次数增高时,即有多个控制点时,曲线会发生不稳 定的现象,并且不能进行局部修改,灵活度不够高。所以,在计算机图形学的研究领域,研究 者都会使用B样条曲线。它是一种基于Bezier曲线的曲线模型,在保证了 Bezier曲线优 点的同时,其局部特性与逼近程度会比Bezier曲线有所提高。而在曲面拟合方面,Bezier 曲面和B样条曲面的算法都为分别在u,v方向定义曲线,从曲面公式的角度上讲,都是在原 曲线公式的基础上再分别乘以相应的转置矩阵。
[0003] 但是,在使用B样条的过程中发现,这种曲线模型使用起来较为复杂,无法满足项 目的实际需求,此外为了通过已知型值点,现有的算法在求对应控制点时,往往采用直接求 解线性方程组的方法,这使得随着型值点数量的增加,方程组的阶数会增加,导致计算量非 常大,并且通过该算法得到的控制点不可调,导致拟合后的Bezier曲线在局部会有跳跃现 象,不能限位。


【发明内容】

[0004] 针对现有技术中的缺陷,本发明提供了一种基于德卡斯特里奥算法的贝塞尔曲线 曲面拟合方法及系统,实现了贝塞尔曲线曲面可以在控制点变化的情况下,通过改变控制 系数对贝塞尔曲线曲面进行拟合。
[0005] 第一方面,本发明提供一种基于德卡斯特里奥算法的贝塞尔曲线拟合方法,包 括:
[0006] 获取贝塞尔曲线的η个型值点,通过所述贝塞尔曲线的η个型值点,根据德卡斯特 里奥算法获取2 X (η-2)个控制点;
[0007] 在所述控制点上设置控制系数,通过改变所述控制系数调节所述贝塞尔曲线在所 述型值点处的曲率,并确定所述曲率为目标曲率时的控制系数;
[0008] 根据确定后的所述控制系数,获取拟合后的贝塞尔曲线。
[0009] 可选的,所述获取贝塞尔曲线的η个型值点,通过所述贝塞尔曲线的η个型值点, 根据德卡斯特里奥算法获取2 X (η-2)个控制点,包括:
[0010] 每个已知的型值点对应两个控制点,该型值点不包括所述贝塞尔曲线的起始点和 终点。
[0011] 可选的,所述控制系数的取值范围为[0, 2]。
[0012] 可选的,所述根据确定后的所述控制系数,获取拟合后的贝塞尔曲线,包括:
[0013] 根据确定后的所述控制系数,获取第m段所述贝塞尔曲线的函数表达式;
[0014] 根据所述第m段所述贝塞尔曲线的函数表达式,利用Langrange插值多项式算法, 获取k段贝塞尔曲线;
[0015] 其中,k为贝塞尔曲线的总段数,k = n-l,所述m为k段贝塞尔曲线中的第m段, 1 ^ m ^ n-1 〇
[0016] 第二方面,本发明还提供了一种基于德卡斯特里奥算法的贝塞尔曲面拟合方法, 包括:
[0017] 确定所述待拟合贝塞尔曲面的U、V方向,对u方向上的贝塞尔曲线求积分,获取所 述u方向贝塞尔曲线的总长度;
[0018] 对所述u方向贝塞尔曲线的总长度进行细分,并获取细分点的坐标;
[0019] 根据u方向所述细分点的坐标,对v方向贝塞尔曲线的总长度进行细分;
[0020] 根据u方向拟合的多条贝塞尔曲线及v方向拟合的的多条贝塞尔曲线,获取拟合 后的贝塞尔曲面。
[0021] 第三方面,本发明还提供了一种基于德卡斯特里奥算法的贝塞尔曲线拟合系统, 包括:
[0022] 控制点获取模块,用于获取贝塞尔曲线的η个型值点,通过所述贝塞尔曲线的η个 型值点,根据德卡斯特里奥算法获取2 X (η-2)个控制点;
[0023] 控制系数确定模块,用于在所述控制点上设置控制系数,通过改变所述控制系数 调节所述贝塞尔曲线在所述型值点处的曲率,并确定所述曲率为目标曲率时的控制系数;
[0024] 曲线拟合模块,用于根据确定后的所述控制系数,获取拟合后的贝塞尔曲线。
[0025] 可选的,所述控制点获取模块中的每个已知的型值点对应两个控制点,该型值点 不包括所述贝塞尔曲线的起始点和终点。
[0026] 可选的,所述控制系数的取值范围为[0, 2]。
[0027] 可选的,所述曲线拟合模块,用于:
[0028] 根据确定后的所述控制系数,获取第m段所述贝塞尔曲线的函数表达式;
[0029] 根据所述第m段所述贝塞尔曲线的函数表达式,利用Langrange插值多项式算法, 获取k段贝塞尔曲线;
[0030] 其中,k为贝塞尔曲线的总段数,k = n-1,所述m为k段贝塞尔曲线中的第m段, 1 ^ m ^ n-1 〇
[0031] 第四方面,本发明还提供了一种基于德卡斯特里奥算法的贝塞尔曲面拟合系统, 包括:
[0032] 曲线确定模块,用于确定所述待拟合贝塞尔曲面的u、v方向,对u方向上的贝塞尔 曲线求积分,获取所述u方向贝塞尔曲线的总长度;
[0033] 第一曲线细分模块,用于对所述u方向贝塞尔曲线的总长度进行细分,并获取细 分点的坐标;
[0034] 第二曲线细分模块,用于根据u方向所述细分点的坐标,对v方向贝塞尔曲线的总 长度进行细分;
[0035] 曲面拟合模块,用于根据u方向拟合的多条贝塞尔曲线及v方向拟合的的多条贝 塞尔曲线,获取拟合后的贝塞尔曲面。
[0036] 由上述技术方案可知,本发明提供的基于德卡斯特里奥算法的贝塞尔曲线曲面拟 合方法及系统,该方法实现了贝塞尔曲线曲面可以在控制点变化的情况下,通过改变控制 系数对贝塞尔曲线曲面进行拟合,能够在选取较少的型值点的同时,拟合出仿形程度高的 Bezier曲线,且该曲线能够通过所有型值点,保证了该曲线的连续性,在曲面拟合方面,降 低了复杂度,提高了拟合效率。

【专利附图】

【附图说明】
[0037] 图1为本发明一实施例提供的2次Bezier曲线的拟合曲线图;
[0038] 图2为本发明一实施例提供的3次Bezier曲线的拟合曲线图;
[0039] 图3为本发明一实施例提供的调整3次Bezier曲线曲率的过程示意图;
[0040] 图4为本发明一实施例提供的基于德卡斯特里奥算法的贝塞尔曲线拟合方法的 流程示意图;
[0041] 图5为本发明一实施例提供的改变控制系数获取的不同的曲线图;
[0042] 图6为本发明一实施例提供的控制系数C = 0. 7时的曲线图;
[0043] 图7为本发明一实施例提供的基于德卡斯特里奥算法的贝塞尔曲面拟合方法的 流程示意图;
[0044] 图8为本发明一实施例提供的基于德卡斯特里奥算法的贝塞尔曲线拟合系统的 结构示意图;
[0045] 图9为本发明一实施例提供的基于德卡斯特里奥算法的贝塞尔曲面拟合系统的 结构示意图;
[0046] 图10为本发明一实施例提供的本发明曲线的拟合方法与sin函数曲线的对比曲 线图;
[0047] 图11为本发明一实施例提供的本发明曲线的拟合方法与特殊间距的sin函数曲 线的对比曲线图;
[0048] 图12A至12B为本发明一实施例提供的型值点数目与拟合误差的关系图;
[0049] 图13A至13C为本发明另一实施例提供的型值点数目与拟合误差的关系图;
[0050] 图14为现有技术中控制点选取示意图;
[0051] 图15为本发明一实施例提供的采用本发明采用德卡斯特里奥算法与其他插值算 法的曲线拟合对比图;
[0052] 图16A至16B为本发明一实施例提供的采用本方法拟合的曲面图;
[0053] 图17A至17B为本发明一实施例提供的采用本方法细分后的曲面图。

【具体实施方式】
[0054] 下面结合附图,对发明的【具体实施方式】作进一步描述。以下实施例仅用于更加清 楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0055] 本发明主要是根据德卡斯特里奥de Casteljau算法通过多次按比例分割Bezier 曲线的控制多边形,使得最后一次分割的线段与Bezier曲线相切于目标点,即Bezier曲线 上相应的比例点。下面为将该deCasteljau算法应用到拟合Bezier曲线曲面的问题中进 行研究的详细推导过程。
[0056] 图1示出了本发明实施例提供的2次Bezier曲线的拟合曲线图,如图1所示的2 次Bezier曲线,控制点为A,B,C。曲线通过A和C,B可调整曲线的形状。当B点沿BC移 动时,Bez ier曲线的中点也会向AC移动,而且曲线在对应控制点处的曲率在减小。
[0057] 图2示出了本发明实施例提供的3次Bezier曲线的拟合曲线图,如图2所示的3 次Bezier曲线,控制点为八,8,(:,0。曲线通过4,0,8,(:可以用来调整曲线形状。在8点沿 BA方向移动时,曲线中点也在向AD移动,曲线在对应控制点B处的曲率也减小。
[0058] 图3示出了本发明实施例提供的调整3次Bezier曲线曲率的过程示意图,如图3 所示,可以通过改变控制点到起始点或终点的距离,来调整Bezier曲线在相应控制点处的 曲率。其中,Bezier曲线与控制多边形的起始边和末尾边分别相切于起始点和末尾点。
[0059] 当已知三维空间内的n(n彡3)个型值点时。为了保证曲线具有连 续性和限位功能,结合上述规律可以找到2X (n-2)控制点并引入控制 系数C(0彡C彡2)。控制点的推导过程,以η = 4为例: AQ A
[0060] 若型值点为心,Ai,A2, A3,连接Α/2,在Α/2上找点Q使得= W,令Α/2沿着 BA 向量c平移到4,得ΒΛ,在ΒΛ上找点B' ^吏得控制系数C = 2x#(0<Cii2)同理, . 0 1 〇 可以求得控制点B2, B3。那么AA就变成由控制的3次Bezier曲线。并且在连接 点处的两条Bezier曲线具有公共切线,保证了曲线的C1连续。在起始点与终点处,我们默 认该两点分别对应一个控制点,并设为其本身,在实际运用中可以根据需求改变其值,以实 现调整起始点处与终点处的对应切线方向。
[0061] 基于上述推导,图4示出了本发明实施例提供的基于德卡斯特里奥算法的贝塞尔 曲线拟合方法的流程示意图,如图4所示,该贝塞尔曲线拟合方法包括如下步骤:
[0062] 401、获取贝塞尔曲线的η个型值点,通过所述贝塞尔曲线的η个型值点,根据德卡 斯特里奥算法获取2 X (η-2)个控制点;
[0063] 举例来说,每个已知的型值点对应两个控制点,该型值点不包括所述贝塞尔曲线 的起始点和终点。
[0064] 402、在所述控制点上设置控制系数,通过改变所述控制系数调节所述贝塞尔曲线 在所述型值点处的曲率,并确定所述曲率为目标曲率时的控制系数。
[0065] 举例来说,另五个型值点为(0, 0, 0),(1,1,0),(2, 2. 5, 0),(3, 0, 0),(4, 0· 5, 0),C 分别取:〇,〇. 2,0. 4,0. 6,0. 8,1,1. 2,1. 4,1. 6,1. 8,2可得得到如图5所示的图形,所述控制 系数的取值范围为[0, 2],其中,C取0时是通过4条线段来拟合曲线的,C = 2时所拟合出 来的曲线局部曲率过大。通过多次实验,在C = 0.7时,定义为目标曲率时的控制系数,效 果如图6所示的曲线。
[0066] 因此,若有η个已知型值点,可以得到一条由η-I段3次Bezier曲线组成的曲线。 该曲线特点如下:曲线通过η个型值点的同时,保证了 C1连续;对于每一个已知的型值点 (起始点,终点除外),可找到两个对应的控制点,并设置控制系数C(0 < C < 2),用于调节 曲线在型值点处的曲率;利用了分段插值的思路,对于任意η (η > 3)个型值点,两个连续点 之间用3次Bezier曲线连接。且起始点与终点处的切矢可以调整;对于曲线上任意连续的 三个型值点A,B,C,保证了 B始终是在以线段AC为水平轴线的最高点,起到限位的作用,防 止了抖动。
[0067] 403、根据确定后的所述控制系数,获取拟合后的贝塞尔曲线。
[0068] 举例来说,上述步骤403包括图4中未示出的子步骤:
[0069] 4031、根据确定后的所述控制系数,获取第m段所述贝塞尔曲线的函数表达式;
[0070] 4032、根据所述第m段所述贝塞尔曲线的函数表达式,利用Langrange插值多项式 算法,获取k段贝塞尔曲线;
[0071] 其中,k为贝塞尔曲线的总段数,k = n-l,所述m为k段贝塞尔曲线中的第m段, 1 ^ m ^ n-1 〇
[0072] 为了更清楚的说明上述Bezier曲线的拟合方法,通过下述具体的计算过程进行 详细说明。
[0073] 标准Bezier曲线上任意一点可由公式给出

【权利要求】
1. 一种基于德卡斯特里奥算法的贝塞尔曲线拟合方法,其特征在于,包括: 获取贝塞尔曲线的η个型值点,通过所述贝塞尔曲线的η个型值点,根据德卡斯特里奥 算法获取2Χ (η-2)个控制点; 在所述控制点上设置控制系数,通过改变所述控制系数调节所述贝塞尔曲线在所述型 值点处的曲率,并确定所述曲率为目标曲率时的控制系数; 根据确定后的所述控制系数,获取拟合后的贝塞尔曲线。
2. 根据权利要求1所述的方法,其特征在于,所述获取贝塞尔曲线的η个型值点,通过 所述贝塞尔曲线的η个型值点,根据德卡斯特里奥算法获取2 X (η-2)个控制点,包括: 每个已知的型值点对应两个控制点,该型值点不包括所述贝塞尔曲线的起始点和终 点。
3. 根据权利要求1所述的方法,其特征在于,所述控制系数的取值范围为[0, 2]。
4. 根据权利要求1所述的方法,其特征在于,所述根据确定后的所述控制系数,获取拟 合后的贝塞尔曲线,包括: 根据确定后的所述控制系数,获取第m段所述贝塞尔曲线的函数表达式; 根据所述第m段所述贝塞尔曲线的函数表达式,利用Langrange插值多项式算法,获取 k段贝塞尔曲线; 其中,k为贝塞尔曲线的总段数,k = n-1,所述m为k段贝塞尔曲线中的第m段, 1 ^ m ^ n-1 〇
5. 根据权利要求1至4中任一项所述基于德卡斯特里奥算法的贝塞尔曲面拟合方法, 其特征在于,包括: 确定所述待拟合贝塞尔曲面的u、v方向,对u方向上的贝塞尔曲线求积分,获取所述u 方向贝塞尔曲线的总长度; 对所述u方向贝塞尔曲线的总长度进行细分,并获取细分点的坐标; 根据u方向所述细分点的坐标,对v方向贝塞尔曲线的总长度进行细分; 根据u方向拟合的多条贝塞尔曲线及v方向拟合的的多条贝塞尔曲线,获取拟合后的 贝塞尔曲面。
6. -种基于德卡斯特里奥算法的贝塞尔曲线拟合系统,其特征在于,包括: 控制点获取模块,用于获取贝塞尔曲线的η个型值点,通过所述贝塞尔曲线的η个型值 点,根据德卡斯特里奥算法获取2 X (η-2)个控制点; 控制系数确定模块,用于在所述控制点上设置控制系数,通过改变所述控制系数调节 所述贝塞尔曲线在所述型值点处的曲率,并确定所述曲率为目标曲率时的控制系数; 曲线拟合模块,用于根据确定后的所述控制系数,获取拟合后的贝塞尔曲线。
7. 根据权利要求6所述的系统,其特征在于,所述控制点获取模块中的每个已知的型 值点对应两个控制点,该型值点不包括所述贝塞尔曲线的起始点和终点。
8. 根据权利要求6所述的系统,其特征在于,所述控制系数的取值范围为[0, 2]。
9. 根据权利要求6所述的系统,其特征在于,所述曲线拟合模块,用于: 根据确定后的所述控制系数,获取第m段所述贝塞尔曲线的函数表达式; 根据所述第m段所述贝塞尔曲线的函数表达式,利用Langrange插值多项式算法,获取 k段贝塞尔曲线; 其中,k为贝塞尔曲线的总段数,k = n-1,所述m为k段贝塞尔曲线中的第m段, 1 ^ m ^ n-1 〇
10.根据权利要求6至9中任一项所述基于德卡斯特里奥算法的贝塞尔曲面拟合系统, 其特征在于,包括: 曲线确定模块,用于确定所述待拟合贝塞尔曲面的u、v方向,对u方向上的贝塞尔曲线 求积分,获取所述u方向贝塞尔曲线的总长度; 第一曲线细分模块,用于对所述u方向贝塞尔曲线的总长度进行细分,并获取细分点 的坐标; 第二曲线细分模块,用于根据u方向所述细分点的坐标,对v方向贝塞尔曲线的总长度 进行细分; 曲面拟合模块,用于根据U方向拟合的多条贝塞尔曲线及V方向拟合的的多条贝塞尔 曲线,获取拟合后的贝塞尔曲面。
【文档编号】G06T17/30GK104268942SQ201410469987
【公开日】2015年1月7日 申请日期:2014年9月15日 优先权日:2014年9月15日
【发明者】郭大勇, 成佳颐, 姜国军, 阙开良, 吴越 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1