[发明专利]一种光顺优化的NURBS空间曲线曲率连续拼接的CAD方法有效
申请号: | 200810247339.6 | 申请日: | 2008-12-30 |
公开(公告)号: | CN101482979A | 公开(公告)日: | 2009-07-15 |
发明(设计)人: | 刘永进;仇荣琦 | 申请(专利权)人: | 清华大学 |
主分类号: | G06T17/30 | 分类号: | G06T17/30;G06T17/40 |
代理公司: | 北京路浩知识产权代理有限公司 | 代理人: | 胡小永 |
地址: | 100084北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种光顺优化的NURBS空间曲线曲率连续拼接的CAD方法,属于空间参数曲线几何造型的CAD领域,其特征在于,初始化阶段输入不连续的两条NURBS曲线C和C;对其中的曲线C通过实行三次延伸操作的方式,使得C与曲线C实现G0连续。再调整C曲线延伸部分的控制顶点和相应权重,通过一维黄金分割搜索最小化二阶光顺能量,实现两条曲线的G2连续并且具有最小的光顺能量值。该方法在不改变曲线原有部分的情况下,填补了两条NURBS曲线间的缝隙,并且保证了曲线延伸部分的光顺性最优。 | ||
搜索关键词: | 一种 优化 nurbs 空间 曲线 曲率 连续 拼接 cad 方法 | ||
【主权项】:
1.一种光顺优化的NURBS空间曲线曲率连续拼接的CAD方法,其特征在于,所述方法是在计算机上依次按照如下步骤实现的:S1:输入不连续的两条NURBS空间曲线C(u)和C(u),对于曲线C(u)其形式为:C ( u ) = Σ i = 0 n - 1 N i , U ( u ) w i P i Σ i = 0 n - 1 N i , U ( u ) w i ]]> 其中u是曲线C(u)的参数,n是曲线C(u)所含的控制顶点个数,Pi是曲线C(u)中序号为i的控制顶点的坐标值,由用户输入,i=0,1,...,n-1,采用三维直角坐标表示,wi是曲线C(u)中序号为i的控制顶点的权重,由用户输入,i=0,1,...,n-1,Ni,U是定义在节点向量序列U之上的序号为i的B样条基函数,i=0,1,...,n-1,U是曲线C(u)的节点向量序列:U={u0,u1,...,un+p}其中p是曲线C(u)的幂,由用户输入,u0,u1,...,un+p等为节点向量序列中的节点,其中u0=u1=…=up=0,un=un+1=…=un+p=1,up+1,up+2,...,un-1由用户输入,上述的B样条基函数采用Matlab系统样条工具库中B样条基函数的定义方式;对于曲线C(u)其形式为:C ‾ ( u ‾ ) = Σ i = 0 n ‾ - 1 N i , U ‾ ( u ‾ ) w ‾ i P ‾ i Σ i = 0 n ‾ - 1 N i , U ‾ ( u ‾ ) w ‾ i ]]> 其中u是曲线C(u)的参数,n是曲线C(u)所含的控制顶点个数,Pi是曲线C(u)中序号为i的控制顶点的坐标值,由用户输入,i=0,1,...,n-1,采用三维直角坐标表示,wi是曲线C(u)中序号为i的控制顶点的权重,由用户输入,i=0,1,...,n-1,
是定义在节点向量序列U之上的序号为i的B样条基函数,i=0,1,...,n-1,U是曲线C(u)的节点向量序列:U ‾ = { u ‾ 0 , u ‾ 1 , . . . , u ‾ n ‾ + p ‾ } ]]> 其中p是曲线C(u)的幂,由用户输入,
等为节点向量序列中的节点,其中u ‾ 0 = u ‾ 1 = · · · = u ‾ p ‾ = 0 , ]]>u ‾ n ‾ = u ‾ n ‾ + 1 = · · · = u ‾ n ‾ + p ‾ = 1 , ]]>
由用户输入,上述的B样条基函数采用Matlab系统样条工具库中B样条基函数的定义方式;S2:对曲线C(u)进行向曲线C(u)方向的延伸,其步骤如下:S21:计算齐次空间中曲线C(u)的B样条表示形式Cw(u),计算方法如下:C w ( u ) = Σ i = 0 n - 1 N i , U ( u ) P i w ]]> 其中
是齐次空间中点Pi的表示形式,i=0,1,...,n-1,采用四维直角坐标表示,其计算方法如下:P i w = ( w i P i , w i ) ]]> 计算齐次空间中曲线C(u)的B样条表示形式Cw(u),计算方法如下:C ‾ w ( u ‾ ) = Σ i = 0 n ‾ - 1 N i , U ‾ ( u ) P ‾ i w ]]> 其中
是齐次空间中点Pi的表示形式,i=0,1,...,n-1,采用四维直角坐标表示,其计算方法如下:P ‾ i w = ( w ‾ i P ‾ i , w ‾ i ) , ]]> S22:在曲线Cw(u)和曲线Cw(u)之间设定三个齐次空间点q1,q2和q3,分别作为三次曲线延伸的目标点,其中点q1和q2由用户输入,q3设定为曲线Cw(u)的第一个控制顶点,即q 3 = P ‾ 0 w , ]]> S23:把曲线Cw(u)延伸到所述的点q1,并且设延伸后的曲线为
其表示形式为:C 1 w ( u ) = Σ i = 0 n 1 - 1 N i , U 1 ( u ) P 1 , i w ]]> 其中n1是曲线
中所含的控制顶点个数,且有n1=n+1,
是曲线
中序号为i的控制顶点的函数值,按照步骤S24所述的方法计算,i=0,1,...,n1-1,
是定义在节点向量序列U1之上的序号为i的B样条基函数,i=0,1,...,n1-1,U1是曲线
的归一化形式的节点向量序列:
其中a = 1 + | | P 1 , n 1 - 1 w - q 1 | | Σ i = p n - 1 | | C w ( u i + 1 ) - C w ( u i ) | | , ]]> ‖·‖表示齐次空间的欧氏距离,S24:按下述步骤计算曲线
中序号为i的控制顶点的值
i=0,1,...,n1-1,S241:设置初值P ~ j - 1 = P 1 , j w , ]]> j=n1-p,...,n1+pS242:递推计算齐次空间点![]()
P ~ j i = P ~ j i - 1 , j = n 1 - p , . . . , n 1 - i - 2 P ~ j i = P ~ j i - 1 - ( 1 - α i , j ) P ~ j - 1 i α i , j , j = n 1 - i - 1 , . . . , n 1 - 1 ]]> 其中α i , j = u n 1 - u j u i + j + 2 - u j , ]]> i=0,1,...,p-2S243:计算
的最终结果P 1 , i w = P i w , i = 0 , . . . , n 1 - p - 1 P 1 , i w = P ~ i p - 2 , i = n 1 - p , . . . , n 1 - 1 ]]> S25:按照步骤S23、S24所述的方法将所述曲线
延伸到点q2,并且设延伸后的曲线为
S26:再按照步骤S23、S24所述的方法将所述曲线
延伸到点q3,并且设延伸后的曲线为
其表示形式为:C 3 w ( u ) = Σ i = 0 n 3 - 1 N i , U 3 ( u ) P 3 , i w ]]> 其中n3是曲线
所含的控制顶点个数且有n3=n+3,
是定义在节点向量序列U3之上的序号为i的B样条基函数,i=0,1,...,n3-1,U3是曲线
的归一化形式的节点向量序列:U 3 = { v 0 , v 1 , . . . , v n 3 + p } , ]]> 其中v0=v1=…=vp=0,v n 3 = v n 3 + 1 = · · · = v n 3 + p = 1 ; ]]> S27:计算齐次空间曲线
在三维空间中的表示形式C3(u):C 3 ( u ) = Σ i = 0 n 3 - 1 N i , U 3 ( u ) w 3 , i P 3 , i Σ i = 0 n 3 - 1 N i , U 3 ( u ) w 3 , i ]]> 其中w3,i为
的最后一维的数值,i=0,1,...,n3-1,设
为
去掉最后一维后的向量,则P 3 , i = P 3 , i ′ w 3 , i , ]]> i=0,1,...,n3-1;S3:修改曲线C3(u)的两个控制顶点P3,n和P3,n+1及其相应权重w3,n和w3,n+1,使得修改后的曲线C3(u)与曲线C(u)在其交接处即u=1和u=0处实现G2连续,P3,n和P3,n+1以及w3,n和w3,n+1的计算方法如下:w 3 , n + 1 = w ‾ 0 - β λ ‾ λ ( w ‾ 1 - w ‾ 0 ) ]]>P 3 , n + 1 = w ‾ 0 w 3 , n + 1 P ‾ 0 - β λ ‾ λw 3 , n + 1 ( w ‾ 1 P ‾ 1 - w ‾ 0 P ‾ 0 ) ]]>w 3 , n = - χ n + 2 χ n w ‾ 0 + χ n + 1 χ n w 3 , n + 1 + β 2 χ n ( χ ‾ 2 w ‾ 2 - χ ‾ 1 w ‾ 1 + χ ‾ 0 w ‾ 0 ) ]]>P 3 , n = - χ n + 2 w ‾ 0 χ n w n P ‾ 0 + χ n + 1 w n + 1 χ n w n P 3 , n + 1 + β 2 χ n w n ( χ ‾ 2 w ‾ 2 P ‾ 2 - χ ‾ 1 w ‾ 1 P ‾ 1 + χ ‾ 0 w ‾ 0 P ‾ 0 ) ]]> 其中β是由步骤S4确定的正实数值,λ,λ,xn,xn+1,xn+2,x0,x1,x2为常数,定义如下:λ = p 1 - v n 3 - 1 ]]>λ ‾ = p ‾ u ‾ p ‾ + 1 ]]>χ n = p ( p - 1 ) ( 1 - v n 3 - 1 ) ( 1 - v n 3 - 2 ) ]]>χ n + 2 = p ( p - 1 ) ( 1 - v n 3 - 1 ) 2 ]]> xn+1=xn+xn+2χ ‾ 2 = p ‾ ( p ‾ - 1 ) u ‾ p ‾ + 1 u ‾ p ‾ + 2 ]]>χ ‾ 0 = p ‾ ( p ‾ - 1 ) ( u ‾ p ‾ + 1 ) 2 ]]> x1=x0+x2;S4:确定β的取值使得延伸曲线二阶光顺能量值最小,所述的二阶光顺能量值定义为:E = ∫ | | C 3 ′ ′ ( u ) | | 2 du ]]> 其中
表示C3(u)的二阶导数;由步骤S3知,C3(u)的分子分母的各项中只有![]()
![]()
和
为β的多项式函数,其余各项均与β无关,故C3(u)具有如下形式:C 3 ( u ) = β 4 v 1 ( u ) + β 2 v 2 ( u ) + v 3 ( u ) β 2 c 1 ( u ) + β c 2 ( u ) + c 3 ( u ) ]]> 其中c1(u),c2(u),c3(u)为已知的关于u的分段多项式函数,v1(u),v2(u),v3(u)为已知的关于u的分段多项式向量值函数,对C3(u)关于u求一阶导数可得:C 3 ′ ( u ) = Σ i = 0 6 β i v 4 + i ( u ) Σ j = 0 4 β j c 4 + j ( u ) ]]> 其中c4(u),c5(u),...,c8(u)为已知的关于u的分段多项式函数,v4(u),v5(u),...,v10(u)为已知的关于u的分段多项式向量值函数,再对
关于u求一阶导数可得:C 3 ′ ′ ( u ) = Σ i = 0 10 β i v 11 + i ( u ) Σ j = 0 8 β j c 9 + j ( u ) ]]> 其中c9(u),c10(u),...,c17(u)为已知的关于u的分段多项式函数,v11(u),v12(u),...,v21(u)为已知的关于u的分段多项式向量值函数,因而
的表达式为:| | C 3 ′ ′ ( u ) | | 2 = C 3 ′ ′ ( u ) T C 3 ′ ′ ( u ) = Σ i = 0 20 β i c 18 + i ( u ) Σ j = 0 16 β j c 39 + j ( u ) ]]> 其中c18(u),c19(u),...,c55(u)为已知的关于u的分段多项式函数,
为分段分式有理函数,因此对
的积分可以得到显式表达式,最后用一维黄金分割搜索法求出最小能量值对应的β。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200810247339.6/,转载请声明来源钻瓜专利网。