專利名稱:一種光順優(yōu)化的nurbs空間曲線曲率連續(xù)拼接的cad方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種光順優(yōu)化的NURBS空間曲線曲率連續(xù)拼接的CAD方法。
背景技術(shù):
CAD方法在現(xiàn)代制造業(yè)中發(fā)揮著重要的作用。它可以準(zhǔn)確表達(dá)較為復(fù)雜的自由型曲線曲面,同時能顯著改善設(shè)計的效率。隨著國際標(biāo)準(zhǔn)化組織(ISO)于1991年正式確定把NURBS方法作為定義產(chǎn)品形狀的唯一數(shù)學(xué)方法,越來越多的CAD/CAM系統(tǒng)采用NURBS作為其模型,NURBS在工業(yè)產(chǎn)品的外形設(shè)計中獲得廣泛的應(yīng)用。
工業(yè)產(chǎn)品外形設(shè)計中的一個重要方面是曲線設(shè)計,設(shè)計人員通常先設(shè)計出最能表現(xiàn)產(chǎn)品外形特點的若干條NURBS曲線,其中的縫隙則希望使用CAD方法進(jìn)行填補(bǔ),以滿足產(chǎn)品外形的美觀要求。
發(fā)明內(nèi)容
(一)要解決的技術(shù)問題 本發(fā)明要解決的技術(shù)問題是,提供一種光順優(yōu)化的NURBS空間曲線曲率連續(xù)拼接的CAD方法,使得在保持用戶給定的兩條NURBS空間曲線原始部分不變且不引入第三條曲線的前提下,通過三次延伸其中的一條曲線并對此延伸部分進(jìn)行適當(dāng)修改,實現(xiàn)兩條曲線的曲率連續(xù)拼接和拼接部分光順性最優(yōu)。
(二)技術(shù)方案 本發(fā)明公開了一種光順優(yōu)化的NURBS空間曲線曲率連續(xù)拼接的CAD方法,該方法在計算機(jī)中實現(xiàn),包括如下步驟 S1輸入不連續(xù)的兩條NURBS空間曲線C(u)和C(u),對于曲線C(u)其形式為 其中u是曲線C(u)的參數(shù),n是曲線C(u)所含的控制頂點個數(shù),Pi是曲線C(u)中序號為i的控制頂點的坐標(biāo)值,由用戶輸入,i=0,1,...,n-1,采用三維直角坐標(biāo)表示,wi是曲線C(u)中序號為i的控制頂點的權(quán)重,由用戶輸入,i=0,1,...,n-1,Ni,U是定義在節(jié)點向量序列U之上的序號為i的B樣條基函數(shù),i=0,1,...,n-1,U是曲線C(u)的節(jié)點向量序列 U={u0,u1,...,un+p} 其中p是曲線C(u)的冪,由用戶輸入,u0,u1,...,un+p等為節(jié)點向量序列中的節(jié)點,其中u0=u1=…=up=0,un=un+1=…=un+p=1,up+1,up+2,...,un-1由用戶輸入,上述的B樣條基函數(shù)采用Matlab系統(tǒng)樣條工具庫中B樣條基函數(shù)的定義方式,對于曲線C(u)其形式為 其中u是曲線C(u)的參數(shù),n是曲線C(u)所含的控制頂點個數(shù),Pi是曲線C(u)中序號為i的控制頂點的坐標(biāo)值,由用戶輸入,i=0,1,...,n-1,采用三維直角坐標(biāo)表示,wi是曲線C(u)中序號為i的控制頂點的權(quán)重,由用戶輸入,i=0,1,...,n-1,
是定義在節(jié)點向量序列U之上的序號為i的B樣條基函數(shù),i=0,1,...,n-1,U是曲線C(u)的節(jié)點向量序列 其中p是曲線C(u)的冪,由用戶輸入,
等為節(jié)點向量序列中的節(jié)點,其中
由用戶輸入,上述的B樣條基函數(shù)采用Matlab系統(tǒng)樣條工具庫中B樣條基函數(shù)的定義方式; S2對曲線C(u)進(jìn)行向曲線C(u)方向的延伸,其步驟如下 S21計算齊次空間中曲線C(u)的B樣條表示形式Cw(u),計算方法如下 其中
是齊次空間中點Pi的表示形式,i=0,1,...,n-1,采用四維直角坐標(biāo)表示,其計算方法如下 計算齊次空間中曲線C(u)的B樣條表示形式Cw(u),計算方法如下 其中
是齊次空間中點Pi的表示形式,i=0,1,...,n-1,采用四維直角坐標(biāo)表示,其計算方法如下 S22在曲線Cw(u)和曲線Cw(u)之間設(shè)定三個齊次空間點q1,q2和q3,分別作為三次曲線延伸的目標(biāo)點,其中點q1和q2由用戶輸入,q3設(shè)定為曲線Cw(u)的第一個控制頂點,即 S23把曲線Cw(u)延伸到所述的點q1,并且設(shè)延伸后的曲線為
,其表示形式為 其中n1是曲線
中所含的控制頂點個數(shù),且有n1=n+1,
是曲線
中序號為i的控制頂點的函數(shù)值,按照步驟S24所述的方法計算,i=0,1,...,n1-1,
是定義在節(jié)點向量序列U1之上的序號為i的B樣條基函數(shù),i=0,1,...,n1-1,U1是曲線
的歸一化形式的節(jié)點向量序列
其中‖·‖表示齊次空間的歐氏距離, S24按下述步驟計算曲線
中序號為i的控制頂點的值
i=0,1,...,n1-1, S241設(shè)置初值 S242遞推計算齊次空間點
其中i=0,1,...,p-2 S243計算
的最終結(jié)果 S25按照步驟S23、S24所述的方法將所述曲線
延伸到點q2,并且設(shè)延伸后的曲線為
S26再按照步驟S23、S24所述的方法將所述曲線
延伸到點q3,并且設(shè)延伸后的曲線為
,其表示形式為 其中n3是曲線
所含的控制頂點個數(shù)且有n3=n+3,
是定義在節(jié)點向量序列U3之上的序號為i的B樣條基函數(shù),i=0,1,...,n3-1,U3是曲線
的歸一化形式的節(jié)點向量序列 其中v0=v1=…=vp=0, S27計算齊次空間曲線
在三維空間中的表示形式C3(u) 其中w3,i為
的最后一維的數(shù)值,i=0,1,...,n3-1,設(shè)
為
去掉最后一維后的向量,則i=0,1,...,n3-1; S3修改曲線C3(u)的兩個控制頂點P3,n和P3,n+1及其相應(yīng)權(quán)重w3,n和w3,n+1,使得修改后的曲線C3(u)與曲線C(u)在其交接處即u=1和u=0處實現(xiàn)G2連續(xù),P3,n和P3,n+1以及w3,n和w3,n+1的計算方法如下 其中β是由步驟S4確定的正實數(shù)值,λ,λ,χn,χn+1,χn+2,χ0,χ1,χ2為常數(shù),定義如下 χn+1=χn+χn+2 χ1=χ0+χ2; S4確定β的取值使得延伸曲線二階光順能量值最小,所述的二階光順能量值定義為 其中
表示C3(u)的二階導(dǎo)數(shù),由步驟S3知,C3(u)的分子分母的各項中只有
和
為β的多項式函數(shù),其余各項均與β無關(guān),故C3(u)具有如下形式 其中c1(u),c2(u),c3(u)為已知的關(guān)于u的分段多項式函數(shù),v1(u),v2(u),v3(u)為已知的關(guān)于u的分段多項式向量值函數(shù),對C3(u)關(guān)于u求一階導(dǎo)數(shù)可得 其中c4(u),c5(u),...,c8(u)為已知的關(guān)于u的分段多項式函數(shù),v4(u),v5(u),...,v10(u)為已知的關(guān)于u的分段多項式向量值函數(shù),再對
關(guān)于u求一階導(dǎo)數(shù)可得 其中c9(u),c10(u),...,c17(u)為已知的關(guān)于u的分段多項式函數(shù),v11(u),v12(u),...,v21(u)為已知的關(guān)于u的分段多項式向量值函數(shù),因而
的表達(dá)式為 其中c18(u),c19(u),...,c55(u)為已知的關(guān)于u的分段多項式函數(shù),
為分段分式有理函數(shù),因此對
的積分可以得到顯式表達(dá)式,最后用一維黃金分割搜索法求出最小能量值對應(yīng)的β。
(三)有益效果 在實際應(yīng)用中,此方法簡單可行。在保持用戶給定的兩條NURBS空間曲線原始部分不變且不引入第三條曲線的前提下,通過對其中的一條NURBS曲線實行三次延伸操作并對此延伸部分進(jìn)行適當(dāng)修改,實現(xiàn)了兩條NURBS曲線的曲率連續(xù)拼接和光順性優(yōu)化。
圖1為輸入的兩條原始NURBS曲線C和C; 圖2是對曲線C相繼實行三次延伸操作后的曲線C3; 圖3為對曲線C3延伸部分進(jìn)行修改后與曲線C達(dá)到二階幾何連續(xù)的結(jié)果; 圖4為對曲線C3延伸部分進(jìn)一步修改后實現(xiàn)延伸部分二階光順能量值最小的結(jié)果; 圖5是整個方法的步驟流程圖。
具體實施例方式 下面結(jié)合附圖和具體實施方式
對本方法作進(jìn)一步的詳細(xì)說明 本CAD方法以Windows XP中的Visual Studio 2008為開發(fā)平臺,其具體實施方式
如下 圖1是輸入的兩條原始NURBS曲線C和C。對于曲線C(u)其形式為 其中u是曲線C(u)的參數(shù),n是曲線C(u)所含的控制頂點個數(shù),Pi是曲線C(u)中序號為i的控制頂點的坐標(biāo)值,由用戶輸入,i=0,1,...,n-1,采用三維直角坐標(biāo)表示,wi是曲線C(u)中序號為i的控制頂點的權(quán)重,由用戶輸入,i=0,1,...,n-1,Ni,U是定義在節(jié)點向量序列U之上的序號為i的B樣條基函數(shù),i=0,1,...,n-1,U是曲線C(u)的節(jié)點向量序列 U={u0,u1,...,un+p} 其中p是曲線C(u)的冪,由用戶輸入,u0,u1,...,un+p等為節(jié)點向量序列中的節(jié)點,其中u0=u1=…=up=0,un=un+1=…=un+p=1,up+1,up+2,...,un-1由用戶輸入,上述的B樣條基函數(shù)采用Matlab系統(tǒng)樣條工具庫中B樣條基函數(shù)的定義方式,對于曲線C(u)其形式為 其中u是曲線C(u)的參數(shù),n是曲線C(u)所含的控制頂點個數(shù),Pi是曲線C(u)中序號為i的控制頂點的坐標(biāo)值,由用戶輸入,i=0,1,...,n-1,采用三維直角坐標(biāo)表示,wi是曲線C(u)中序號為i的控制頂點的權(quán)重,由用戶輸入,i=0,1,...,n-1,
是定義在節(jié)點向量序列U之上的序號為i的B樣條基函數(shù),i=0,1,...,n-1,U是曲線C(u)的節(jié)點向量序列 其中p是曲線C(u)的冪,由用戶輸入,
等為節(jié)點向量序列中的節(jié)點,其中
由用戶輸入,上述的B樣條基函數(shù)采用Matlab系統(tǒng)樣條工具庫中B樣條基函數(shù)的定義方式。
圖2是對曲線C相繼實行三次延伸操作后的結(jié)果,其具體方法如下 (1)計算齊次空間中曲線C(u)的B樣條表示形式Cw(u),計算方法如下 其中
是齊次空間中點Pi的表示形式,i=0,1,...,n-1,采用四維直角坐標(biāo)表示,其計算方法如下 計算齊次空間中曲線C(u)的B樣條表示形式Cw(u),計算方法如下 其中
是齊次空間中點Pi的表示形式,i=0,1,...,n-1,采用四維直角坐標(biāo)表示,其計算方法如下 (2)在曲線Cw(u)和曲線Cw(u)之間設(shè)定三個齊次空間點q1,q2和q3,分別作為三次曲線延伸的目標(biāo)點,其中點q1和q2由用戶輸入,q3設(shè)定為曲線Cw的第一個控制頂點,即 (3)把曲線Cw(u)延伸到所述的點q1,并且設(shè)延伸后的曲線為
其表示形式為 其中n1是曲線
中所含的控制頂點個數(shù),且有n1=n+1,
是定義在節(jié)點向量序列U1之上的序號為i的B樣條基函數(shù),i=0,1,...,n1-1,U1是曲線
的歸一化形式的節(jié)點向量序列
其中‖·‖表示齊次空間的歐氏距離,
是曲線
中序號為i的控制頂點的函數(shù)值,i=0,1,...,n1-1,其計算方法如下 (a)設(shè)置初值j=n1-p,...,n1+p (b)遞推計算齊次空間點
其中i=0,1,...,p-2 (c)計算
的最終結(jié)果 (4)按照(3)中所述的方法將所述曲線
延伸到點q2,并且設(shè)延伸后的曲線為
(5)再按照(3)中所述的方法將所述曲線
延伸到點q3,并且設(shè)延伸后的曲線為
,其表示形式為 其中n3是曲線
所含的控制頂點個數(shù)且有n3=n+3,
是定義在節(jié)點向量序列U3之上的序號為i的B樣條基函數(shù),i=0,1,...,n3-1,U3是曲線
的歸一化形式的節(jié)點向量序列 其中v0=v1=…=vp=0, (6)計算齊次空間曲線
在三維空間中的表示形式C3(u) 其中w3,i為
的最后一維的數(shù)值,i=0,1,...,n3-1,設(shè)
為
去掉最后一維后的向量,則i=0,1,...,n3-1。
圖3為對曲線C3延伸部分進(jìn)行修改后與曲線C達(dá)到曲率連續(xù)的結(jié)果,其具體方法如下 修改曲線C3(u)的兩個控制頂點P3,n和P3,n+1及其相應(yīng)權(quán)重w3,n和w3,n+1,使得修改后的曲線C3(u)與曲線C(u)在其交接處即u=1和u=0處實現(xiàn)G2連續(xù),P3,n和P3,n+1以及w3,n和w3,n+1的計算方法如下 其中β是待定的正實數(shù)值,λ,λ,χn,χn+1,χn+2,χ0,χ1,χ2為常數(shù),定義如下 χn+1=χn+χn+2 χ1=χ0+χ2 圖4為對曲線C3延伸部分進(jìn)一步修改后實現(xiàn)延伸部分二階光順能量值最小的結(jié)果,其具體方法如下 確定β的取值使得延伸曲線二階光順能量值最小,所述的二階光順能量值定義為 其中
表示C3(u)的二階導(dǎo)數(shù), 由于C3(u)的分子分母的各項中只有
和
為β的多項式函數(shù),其余各項均與β無關(guān),故C3(u)具有如下形式 其中c1(u),c2(u),c3(u)為已知的關(guān)于u的分段多項式函數(shù),v1(u),v2(u),v3(u)為已知的關(guān)于u的分段多項式向量值函數(shù),對C3(u)關(guān)于u求一階導(dǎo)數(shù)可得 其中c4(u),c5(u),...,c8(u)為已知的關(guān)于u的分段多項式函數(shù),v4(u),v5(u),...,v10(u)為已知的關(guān)于u的分段多項式向量值函數(shù),再對
關(guān)于u求一階導(dǎo)數(shù)可得 其中c9(u),c10(u),...,c17(u)為已知的關(guān)于u的分段多項式函數(shù),v11(u),v12(u),...,v21(u)為已知的關(guān)于u的分段多項式向量值函數(shù),因而
的表達(dá)式為 其中c18(u),c19(u),...,c55(u)為已知的關(guān)于u的分段多項式函數(shù),
為分段分式有理函數(shù),使用Mathematica軟件可以求出二階光順能量值E關(guān)于β的表達(dá)式,并最終求出最小能量值對應(yīng)的β。
圖5是整個方法的步驟流程圖,初始化階段輸入不連續(xù)的兩條NURBS曲線C和C;對其中的曲線C通過實行三次延伸操作的方式,使得C與曲線C實現(xiàn)G0連續(xù)。再調(diào)整C曲線延伸部分的控制頂點和相應(yīng)權(quán)重,通過一維黃金分割搜索最小化二階光順能量,實現(xiàn)兩條曲線的G2連續(xù)并且具有最小的光順能量值。
權(quán)利要求
1.一種光順優(yōu)化的NURBS空間曲線曲率連續(xù)拼接的CAD方法,其特征在于,所述方法是在計算機(jī)上依次按照如下步驟實現(xiàn)的
S1輸入不連續(xù)的兩條NURBS空間曲線C(u)和C(u),對于曲線C(u)其形式為
其中u是曲線C(u)的參數(shù),n是曲線C(u)所含的控制頂點個數(shù),Pi是曲線C(u)中序號為i的控制頂點的坐標(biāo)值,由用戶輸入,i=0,1,...,n-1,采用三維直角坐標(biāo)表示,wi是曲線C(u)中序號為i的控制頂點的權(quán)重,由用戶輸入,i=0,1,...,n-1,Ni,U是定義在節(jié)點向量序列U之上的序號為i的B樣條基函數(shù),i=0,1,...,n-1,U是曲線C(u)的節(jié)點向量序列
U={u0,u1,...,un+p}
其中p是曲線C(u)的冪,由用戶輸入,u0,u1,...,un+p等為節(jié)點向量序列中的節(jié)點,其中u0=u1=…=up=0,un=un+1=…=un+p=1,up+1,up+2,...,un-1由用戶輸入,上述的B樣條基函數(shù)采用Matlab系統(tǒng)樣條工具庫中B樣條基函數(shù)的定義方式;對于曲線C(u)其形式為
其中u是曲線C(u)的參數(shù),n是曲線C(u)所含的控制頂點個數(shù),Pi是曲線C(u)中序號為i的控制頂點的坐標(biāo)值,由用戶輸入,i=0,1,...,n-1,采用三維直角坐標(biāo)表示,wi是曲線C(u)中序號為i的控制頂點的權(quán)重,由用戶輸入,i=0,1,...,n-1,
是定義在節(jié)點向量序列U之上的序號為i的B樣條基函數(shù),i=0,1,...,n-1,U是曲線C(u)的節(jié)點向量序列
其中p是曲線C(u)的冪,由用戶輸入,
等為節(jié)點向量序列中的節(jié)點,其中
由用戶輸入,上述的B樣條基函數(shù)采用Matlab系統(tǒng)樣條工具庫中B樣條基函數(shù)的定義方式;
S2對曲線C(u)進(jìn)行向曲線C(u)方向的延伸,其步驟如下
S21計算齊次空間中曲線C(u)的B樣條表示形式Cw(u),計算方法如下
其中
是齊次空間中點Pi的表示形式,i=0,1,...,n-1,采用四維直角坐標(biāo)表示,其計算方法如下
計算齊次空間中曲線C(u)的B樣條表示形式Cw(u),計算方法如下
其中
是齊次空間中點Pi的表示形式,i=0,1,...,n-1,采用四維直角坐標(biāo)表示,其計算方法如下
S22在曲線Cw(u)和曲線Cw(u)之間設(shè)定三個齊次空間點q1,q2和q3,分別作為三次曲線延伸的目標(biāo)點,其中點q1和q2由用戶輸入,q3設(shè)定為曲線Cw(u)的第一個控制頂點,即
S23把曲線Cw(u)延伸到所述的點q1,并且設(shè)延伸后的曲線為
其表示形式為
其中n1是曲線
中所含的控制頂點個數(shù),且有n1=n+1,
是曲線
中序號為i的控制頂點的函數(shù)值,按照步驟S24所述的方法計算,i=0,1,...,n1-1,
是定義在節(jié)點向量序列U1之上的序號為i的B樣條基函數(shù),i=0,1,...,n1-1,U1是曲線
的歸一化形式的節(jié)點向量序列
其中‖·‖表示齊次空間的歐氏距離,
S24按下述步驟計算曲線
中序號為i的控制頂點的值
i=0,1,...,n1-1,
S241設(shè)置初值j=n1-p,...,n1+p
S242遞推計算齊次空間點
其中i=0,1,...,p-2
S243計算
的最終結(jié)果
S25按照步驟S23、S24所述的方法將所述曲線
延伸到點q2,并且設(shè)延伸后的曲線為
S26再按照步驟S23、S24所述的方法將所述曲線
延伸到點q3,并且設(shè)延伸后的曲線為
其表示形式為
其中n3是曲線
所含的控制頂點個數(shù)且有n3=n+3,
是定義在節(jié)點向量序列U3之上的序號為i的B樣條基函數(shù),i=0,1,...,n3-1,U3是曲線
的歸一化形式的節(jié)點向量序列
其中v0=v1=…=vp=0,
S27計算齊次空間曲線
在三維空間中的表示形式C3(u)
其中w3,i為
的最后一維的數(shù)值,i=0,1,...,n3-1,設(shè)
為
去掉最后一維后的向量,則i=0,1,...,n3-1;
S3修改曲線C3(u)的兩個控制頂點P3,n和P3,n+1及其相應(yīng)權(quán)重w3,n和w3,n+1,使得修改后的曲線C3(u)與曲線C(u)在其交接處即u=1和u=0處實現(xiàn)G2連續(xù),P3,n和P3,n+1以及w3,n和w3,n+1的計算方法如下
其中β是由步驟S4確定的正實數(shù)值,λ,λ,xn,xn+1,xn+2,x0,x1,x2為常數(shù),定義如下
xn+1=xn+xn+2
x1=x0+x2;
S4確定β的取值使得延伸曲線二階光順能量值最小,所述的二階光順能量值定義為
其中
表示C3(u)的二階導(dǎo)數(shù);由步驟S3知,C3(u)的分子分母的各項中只有
和
為β的多項式函數(shù),其余各項均與β無關(guān),故C3(u)具有如下形式
其中c1(u),c2(u),c3(u)為已知的關(guān)于u的分段多項式函數(shù),v1(u),v2(u),v3(u)為已知的關(guān)于u的分段多項式向量值函數(shù),對C3(u)關(guān)于u求一階導(dǎo)數(shù)可得
其中c4(u),c5(u),...,c8(u)為已知的關(guān)于u的分段多項式函數(shù),v4(u),v5(u),...,v10(u)為已知的關(guān)于u的分段多項式向量值函數(shù),再對
關(guān)于u求一階導(dǎo)數(shù)可得
其中c9(u),c10(u),...,c17(u)為已知的關(guān)于u的分段多項式函數(shù),v11(u),v12(u),...,v21(u)為已知的關(guān)于u的分段多項式向量值函數(shù),因而
的表達(dá)式為
其中c18(u),c19(u),...,c55(u)為已知的關(guān)于u的分段多項式函數(shù),
為分段分式有理函數(shù),因此對
的積分可以得到顯式表達(dá)式,最后用一維黃金分割搜索法求出最小能量值對應(yīng)的β。
全文摘要
一種光順優(yōu)化的NURBS空間曲線曲率連續(xù)拼接的CAD方法,屬于空間參數(shù)曲線幾何造型的CAD領(lǐng)域,其特征在于,初始化階段輸入不連續(xù)的兩條NURBS曲線C和C;對其中的曲線C通過實行三次延伸操作的方式,使得C與曲線C實現(xiàn)G0連續(xù)。再調(diào)整C曲線延伸部分的控制頂點和相應(yīng)權(quán)重,通過一維黃金分割搜索最小化二階光順能量,實現(xiàn)兩條曲線的G2連續(xù)并且具有最小的光順能量值。該方法在不改變曲線原有部分的情況下,填補(bǔ)了兩條NURBS曲線間的縫隙,并且保證了曲線延伸部分的光順性最優(yōu)。
文檔編號G06T17/30GK101482979SQ200810247339
公開日2009年7月15日 申請日期2008年12月30日 優(yōu)先權(quán)日2008年12月30日
發(fā)明者劉永進(jìn), 仇榮琦 申請人:清華大學(xué)