專利名稱::一種基于延伸的產(chǎn)品外形空間曲線的拼接方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種產(chǎn)品外形空間曲線拼接的CAD方法。
背景技術(shù):
:開(kāi)發(fā)曲線曲面的CAD系統(tǒng),可以使設(shè)計(jì)人員擺脫手工制圖的各種不便,極大提高產(chǎn)品外型設(shè)計(jì)的效率,加快產(chǎn)品開(kāi)發(fā)研制的進(jìn)度。曲線設(shè)計(jì)是產(chǎn)品外形設(shè)計(jì)的基礎(chǔ),設(shè)計(jì)人員在設(shè)計(jì)曲線的時(shí)候通常都先設(shè)計(jì)出最能反映出形狀特征的若干曲線,而曲線間的縫隙則期望計(jì)算機(jī)自動(dòng)進(jìn)行填補(bǔ)。同時(shí)在進(jìn)行縫隙填補(bǔ)的過(guò)程中,設(shè)計(jì)人員通常又不希望引入第三條曲線,因?yàn)殡S著產(chǎn)品外型空間曲線條數(shù)的增多,產(chǎn)品的外型加工就越來(lái)越難以處理。除此之外,由于原始設(shè)計(jì)出來(lái)的若干特征曲線具有明顯的設(shè)計(jì)意圖,在縫隙填補(bǔ)的過(guò)程中,設(shè)計(jì)人員不希望對(duì)這些部分有任何改變。
發(fā)明內(nèi)容一種基于延伸的產(chǎn)品外形空間曲線拼接的CAD方法,使得在不引入第三條曲線的情況下,通過(guò)延伸其中的一條曲線并對(duì)此延伸部分進(jìn)行修改實(shí)現(xiàn)兩條曲線的二階幾何連續(xù)拼接。本發(fā)明公開(kāi)了一種基于延伸的產(chǎn)品外形空間曲線拼接的CAD方法,該方法在計(jì)算機(jī)中實(shí)現(xiàn),包括如下步驟步驟(1),初始化輸入要實(shí)行拼接操作的空間曲線C,G)和空間曲線Z)(力,每條曲線采用B樣條的表示方法,對(duì)于曲線C,其形式為-其中t是空間曲線q(/)的參數(shù)坐標(biāo),/,是曲線q(/)所含的控制頂點(diǎn)個(gè)數(shù),《,是曲線c,()中序號(hào)為J'的控制頂點(diǎn)的函數(shù)值,Z:0,1,…,/「1,采用笛卡爾坐標(biāo)表示,iV^是曲線q(。中序號(hào)為i的B樣條基函數(shù),該B樣條基函數(shù)定義在如下節(jié)點(diǎn)向量序列之上<formula>formulaseeoriginaldocumentpage6</formula>其中4是曲線c,的冪,為設(shè)定值,^+i,、+2,…,^—,等為節(jié)點(diǎn)向量序列中的節(jié)點(diǎn),為設(shè)定值,上述的B樣條基函數(shù)采用Matlab系統(tǒng)樣條工具庫(kù)中B樣條基函數(shù)的定義方式,對(duì)于曲線"其形式為<formula>formulaseeoriginaldocumentpage6</formula>其中s是空間曲線Z)(s)的參數(shù)坐標(biāo),J是曲線"("所含的控制頂點(diǎn)個(gè)數(shù),Q.是曲線"(s)中序號(hào)為J'的控制頂點(diǎn)的函數(shù)值,j、0,l,…,J-l,采用笛卡爾坐標(biāo)表示,A^"是曲線"("中序號(hào)為J的B樣條基函數(shù),該B樣條基函數(shù)定義在如下節(jié)點(diǎn)向量序列之上<formula>formulaseeoriginaldocumentpage6</formula>其中&是曲線D的冪,為設(shè)定值,>%+1,>%+2,—,^—,等為節(jié)點(diǎn)向量序列中的節(jié)點(diǎn),為設(shè)定值,t述的B樣條基函數(shù)采用Matlab系統(tǒng)樣條工具庫(kù)中B樣條基函數(shù)的定義方式。步驟(2),對(duì)曲線q^)進(jìn)行向曲線Z)(5)方向的延伸,其步驟如下步驟(2.1)在所述的曲線G(/)和曲線D(^)之間按以下方式生成A和A兩個(gè)空間點(diǎn),《=0.67^,「,+0.33g0,/2=0.33/Jvl+0.67"其中/^一是曲線C,G)上最末一個(gè)控制頂點(diǎn)的函數(shù)值,込是曲線"&)上最初一個(gè)控制頂點(diǎn)的函數(shù)值,步驟(2.2)把曲線q延伸到所述的點(diǎn)《,并且設(shè)延伸后的曲線為(72(/),其表示形式為其中A是包含曲線C^)在內(nèi)的曲線q(f)中所含的控制頂點(diǎn)個(gè)數(shù),且有/2=/,+1,尸2,,是曲線C^)中序號(hào)為i的控制頂點(diǎn)的函數(shù)值,z、0,1,…,/,,A^是曲線C^)中序號(hào)為i的B樣條基函數(shù),所述的iV,,q定義在如下節(jié)點(diǎn)向量序列之上<formula>formulaseeoriginaldocumentpage6</formula>i=0l表示空間的歐氏距離,步驟(2.3)按下述步驟計(jì)算曲線q(Z)中序號(hào)為i'的控制頂點(diǎn)的值A(chǔ),,步驟(2.3.1)設(shè)置初值月°=&,/=/,—^+l,…,/,-1步驟(2.3.2)按下式遞推計(jì)算空間點(diǎn)fr=1,2,--.,夂一1其中義=步驟(2.3.3)得出P2j的設(shè)置結(jié)果/=_^,A-夂+1,…,—i戶、步驟(2.4)按照步驟(2.2)所述的方式將所述曲線C",)延伸到點(diǎn)i,,并且設(shè)延伸后的包含曲線qG)的曲線為c"。,步驟(2.5)再按照步驟(2.2)所述的方式將所述曲線C3(^延伸到所述曲線D("的第0個(gè)控制頂點(diǎn)g。,并且設(shè)延伸后的包含曲線C3的曲線為C4(r):其中A是曲線C"0所含的控制頂點(diǎn)個(gè)數(shù)且有/4^/,+3,A^是曲線C^)中序號(hào)為i的B樣條基函數(shù),z=0,l,...,/1+3,7V^定義在如下歸一化形式的節(jié)點(diǎn)向量序列之上r4=0,0,…,0,、+,,…處..,1^-v-^^-v-^、VIA+l步驟(3),修改曲線C"0的兩個(gè)控制頂點(diǎn)尸4,"和尸4,w,使得修改后的曲線Ct(r)與曲線Z)(力在其交接處即^=1和^=0處實(shí)現(xiàn)2階幾何連續(xù),和和計(jì)算方法如下<formula>formulaseeoriginaldocumentpage8</formula>其中"為用戶指定的值,取值范圍為(o,i]之間的正值,w'和,為相應(yīng)的b樣條基函數(shù)的i階導(dǎo)數(shù)以及2階導(dǎo)數(shù)。在實(shí)際應(yīng)用中,此方法簡(jiǎn)單可行。在保持曲線原始部分不變的情況下,通過(guò)對(duì)其中的一條曲線實(shí)行延伸操作并對(duì)此延伸部分進(jìn)行修改,實(shí)現(xiàn)了兩條曲線的二階幾何連續(xù)。下面結(jié)合附圖和具體實(shí)施方式對(duì)本方法作進(jìn)一步的詳細(xì)說(shuō)明圖1為輸入的兩條原始曲線C,和D。圖2是對(duì)曲線d相繼實(shí)行三次延伸操作后的曲線C4。圖3為對(duì)曲線C,延伸部分進(jìn)行修改后與曲線D達(dá)到二階幾何連續(xù)的結(jié)果。圖4是方法的步驟流程圖。具體實(shí)施例方式本CAD方法以WindowsXP中的VisualStudio2005為開(kāi)發(fā)平臺(tái),其具體實(shí)施方式如下圖l是輸入的兩條原始曲線q和i)。每條曲線采用B樣條的表示方法,對(duì)于曲線q其形式為其中f是空間曲線q(。的參數(shù)坐標(biāo),/i是曲線q(/)所含的控制頂點(diǎn)個(gè)數(shù),化是曲線q(。中序號(hào)為/的控制頂點(diǎn)的函數(shù)值,z-o,i,…,a-1,采用笛卡爾坐標(biāo)表示,A^是曲線q(f)中序號(hào)為/的B樣條基函數(shù),該B樣條基函數(shù)定義在如下節(jié)點(diǎn)向量序列之上<formula>formulaseeoriginaldocumentpage8</formula>其中、是曲線q的冪,為設(shè)定值,、+,,、+"…,^—i等為節(jié)點(diǎn)向量序列中的節(jié)點(diǎn),為設(shè)定值,上述的B樣條基函數(shù)采用Matlab系統(tǒng)樣條工具庫(kù)中B樣條基函數(shù)的定義方式,對(duì)于曲線"其形式為其中s是空間曲線D(O的參數(shù)坐標(biāo),J是曲線"("所含的控制頂點(diǎn)個(gè)數(shù),Q是曲線"(力中序號(hào)為j'的控制頂點(diǎn)的函數(shù)值,乂=0,1,-,>/-1,采用笛卡爾坐標(biāo)表示,jv^是曲線"^)中序號(hào)為j'的b樣條基函數(shù),該b樣條基函數(shù)定義在如下節(jié)點(diǎn)向量序列之上<formula>formulaseeoriginaldocumentpage9</formula>其中&是曲線/)的冪,為設(shè)定值,m^+i,m、+2,…,hv—i等為節(jié)點(diǎn)向量序列中的節(jié)點(diǎn),為設(shè)定值,上述的b樣條基函數(shù)采用Matlab系統(tǒng)樣條工具庫(kù)中B樣條基函數(shù)的定義方式。圖2是對(duì)曲線C,相繼實(shí)行三次延伸操作后的結(jié)果,具體方法如下首先,在所述的曲線&(f)和曲線之間按以下方式生成《和i2兩個(gè)空間點(diǎn),=0-67i^,—,+0.33Q),及2=0.33i^廣,+0.67g0其中^,H是曲線C,(f)上最末一個(gè)控制頂點(diǎn)的函數(shù)值,a是曲線D(s)上最初一個(gè)控制頂點(diǎn)的函數(shù)值。對(duì)曲線C,的延伸延伸是按如下步驟實(shí)現(xiàn)的-(i)把曲線q延伸到所述的點(diǎn)《,并且設(shè)延伸后的曲線為c"f),其表示形式為其中/,是包含曲線C^)在內(nèi)的曲線C^)中所含的控制頂點(diǎn)個(gè)數(shù),且有/2=/1+1,戶2,,是曲線C"r)中序號(hào)為i的控制頂點(diǎn)的函數(shù)值,h0,1,…,/,,A^是曲線C^)中序號(hào)為i的B樣條基函數(shù),所述的A^,。定義在如下節(jié)點(diǎn)向量序列之上<formula>formulaseeoriginaldocumentpage9</formula>其中"+,廣^11'~~11-,l卜ll表示空間的歐氏距離<formula>formulaseeoriginaldocumentpage9</formula>A,是曲線q中序號(hào)為i的控制頂點(diǎn),Z、0,1,…,A,采用笛卡爾坐標(biāo)表示,其計(jì)算方法如下:(I)設(shè)置初值月°=/1,,i=/,—(II)按下式遞推計(jì)算空間點(diǎn)《"<formula>formulaseeoriginaldocumentpage10</formula>其中/1=<formula>formulaseeoriginaldocumentpage10</formula>(ni)得出尸2,的設(shè)置結(jié)果<formula>formulaseeoriginaldocumentpage10</formula>(2)所述的方式將所述曲線q(0延伸到點(diǎn)&,并且設(shè)延伸后的包含曲線C"O的曲線(3)再按照步驟(i)所述的方式將所述曲線q(/)延伸到所述曲線D^;)的第o個(gè)控制頂點(diǎn)2。,并且設(shè)延伸后的包含曲線q(o的曲線為c4(,),此時(shí)曲線c,w與曲線DW實(shí)現(xiàn)了連通,C,(f)的形式如下<formula>formulaseeoriginaldocumentpage10</formula>其中A是曲線C,W所含的控制頂點(diǎn)個(gè)數(shù)且有/,二/,+3,7V^是曲線C,(0中序號(hào)為7的B樣條基函數(shù),/-(Ur.^+S,yV^定義在如下歸一化形式的節(jié)點(diǎn)向量序列之上圖3為對(duì)曲線04延伸部分進(jìn)行修改后與曲線"達(dá)到二階兒何連續(xù)的結(jié)果,其具體方法如下修改曲線c4(0的兩個(gè)控制頂點(diǎn)pm和,使得修改后的曲線c4W與曲線"(》在其交接處即,=1和s=0處實(shí)現(xiàn)2階幾何連續(xù),P4/i和P4A+1和計(jì)算方法如下<formula>formulaseeoriginaldocumentpage10</formula>其中《為用戶指定的值,取值范圍為(0,1]之間的正值,W和,為相應(yīng)的B樣條基函數(shù)的1階導(dǎo)數(shù)以及2階導(dǎo)數(shù)。圖4是整個(gè)方法的步驟流程圖。權(quán)利要求1.一種基于延伸的產(chǎn)品外形空間曲線拼接的CAD方法,其特征在于,所述方法是在計(jì)算機(jī)上依次按照如下步驟實(shí)現(xiàn)的步驟(1),初始化輸入要實(shí)行拼接操作的空間曲線C1(t)和空間曲線D(s),每條曲線采用B樣條的表示方法,對(duì)于曲線C1其形式為<mathsid="math0001"num="0001"><math><![CDATA[<mrow><msub><mi>C</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>Σ</mi><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mrow><msub><mi>I</mi><mn>1</mn></msub><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>P</mi><mrow><mn>1</mn><mo>,</mo><mi>i</mi></mrow></msub><msub><mi>N</mi><mrow><mi>i</mi><mo>,</mo><msub><mi>c</mi><mn>1</mn></msub></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow>]]></math></maths>其中t是空間曲線C1(t)的參數(shù)坐標(biāo),I1是曲線C1(t)所含的控制頂點(diǎn)個(gè)數(shù),P1,i是曲線C1(t)中序號(hào)為i的控制頂點(diǎn)的函數(shù)值,i=0,1,…,I1-1,采用笛卡爾坐標(biāo)表示,id="icf0002"file="A2008101147330002C2.tif"wi="6"he="4"top="95"left="153"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>是曲線C1(t)中序號(hào)為i的B樣條基函數(shù),該B樣條基函數(shù)定義在如下節(jié)點(diǎn)向量序列之上id="icf0003"file="A2008101147330002C3.tif"wi="64"he="14"top="110"left="37"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>其中k1是曲線C1的冪,為設(shè)定值,id="icf0004"file="A2008101147330002C4.tif"wi="31"he="4"top="130"left="20"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>等為節(jié)點(diǎn)向量序列中的節(jié)點(diǎn),為設(shè)定值,上述的B樣條基函數(shù)采用Matlab系統(tǒng)樣條工具庫(kù)中B樣條基函數(shù)的定義方式,對(duì)于曲線D其形式為<mathsid="math0002"num="0002"><math><![CDATA[<mrow><mi>D</mi><mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>Σ</mi><mrow><mi>j</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>J</mi><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>Q</mi><mi>j</mi></msub><msub><mi>N</mi><mrow><mi>j</mi><mo>,</mo><mi>D</mi></mrow></msub><mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow></mrow>]]></math></maths>其中s是空間曲線D(s)的參數(shù)坐標(biāo),J是曲線D(s)所含的控制頂點(diǎn)個(gè)數(shù),Qj是曲線D(s)中序號(hào)為j的控制頂點(diǎn)的函數(shù)值,j=0,1,…,J-1,采用笛卡爾坐標(biāo)表示,Nj,D是曲線D(s)中序號(hào)為j的B樣條基函數(shù),該B樣條基函數(shù)定義在如下節(jié)點(diǎn)向量序列之上id="icf0006"file="A2008101147330002C6.tif"wi="65"he="14"top="195"left="35"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>其中kD是曲線D的冪,為設(shè)定值,id="icf0007"file="A2008101147330002C7.tif"wi="21"he="4"top="215"left="20"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>…,WJ-1等為節(jié)點(diǎn)向量序列中的節(jié)點(diǎn),為設(shè)定值,上述的B樣條基函數(shù)采用Matlab系統(tǒng)樣條工具庫(kù)中B樣條基函數(shù)的定義方式;步驟(2),對(duì)曲線C1(t)進(jìn)行向曲線D(s)方向的延伸,其步驟如下步驟(2.1)在所述的曲線C1(t)和曲線D(s)之間按以下方式生成R1和R2兩個(gè)空間點(diǎn),<mathsid="math0003"num="0003"><math><![CDATA[<mrow><msub><mi>R</mi><mn>1</mn></msub><mo>=</mo><msub><mrow><mn>0.67</mn><mi>P</mi></mrow><mrow><mn>1</mn><mo>,</mo><msub><mi>I</mi><mn>1</mn></msub><mo>-</mo><mn>1</mn></mrow></msub><mo>+</mo><msub><mrow><mn>0.33</mn><mi>Q</mi></mrow><mn>0</mn></msub><mo>,</mo></mrow>]]></math>id="icf0008"file="A2008101147330002C8.tif"wi="41"he="4"top="255"left="58"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths><mathsid="math0004"num="0004"><math><![CDATA[<mrow><msub><mi>R</mi><mn>2</mn></msub><mo>=</mo><mn>0.33</mn><msub><mi>P</mi><mrow><mn>1</mn><mo>,</mo><msub><mi>I</mi><mn>1</mn></msub><mo>-</mo><mn>1</mn></mrow></msub><mo>+</mo><msub><mrow><mn>0.67</mn><mi>Q</mi></mrow><mn>0</mn></msub><mo>,</mo></mrow>]]></math>id="icf0009"file="A2008101147330002C9.tif"wi="42"he="5"top="255"left="103"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>其中id="icf0010"file="A2008101147330002C10.tif"wi="7"he="4"top="267"left="28"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>是曲線C1(t)上最末一個(gè)控制頂點(diǎn)的函數(shù)值,Q0是曲線D(s)上最初一個(gè)控制頂點(diǎn)的函數(shù)值,步驟(2.2)把曲線C1延伸到所述的點(diǎn)R1,并且設(shè)延伸后的曲線為C2(t),其表示形式為<mathsid="math0005"num="0005"><math><![CDATA[<mrow><msub><mi>C</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>Σ</mi><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mrow><msub><mi>I</mi><mn>2</mn></msub><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>P</mi><mrow><mn>2</mn><mo>,</mo><mi>i</mi></mrow></msub><msub><mi>N</mi><mrow><mi>i</mi><mo>,</mo><msub><mi>c</mi><mn>2</mn></msub></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow>]]></math></maths>其中I2是包含曲線C1(t)在內(nèi)的曲線C2(t)中所含的控制頂點(diǎn)個(gè)數(shù),且有I2=I1+1,P2,i是曲線C2(t)中序號(hào)為i的控制頂點(diǎn)的函數(shù)值,i=0,1,…,I1,id="icf0012"file="A2008101147330003C2.tif"wi="6"he="4"top="81"left="126"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>是曲線C2(t)中序號(hào)為i的B樣條基函數(shù),所述的id="icf0013"file="A2008101147330003C3.tif"wi="6"he="4"top="92"left="59"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>定義在如下節(jié)點(diǎn)向量序列之上其中<mathsid="math0006"num="0006"><math><![CDATA[<mrow><mi>a</mi><mo>=</mo><mn>1</mn><mo>+</mo><mfrac><mrow><mo>|</mo><mo>|</mo><msub><mi>P</mi><mrow><mn>1</mn><mo>,</mo><msub><mi>I</mi><mn>1</mn></msub><mo>-</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>R</mi><mn>1</mn></msub><mo>|</mo><mo>|</mo></mrow><mrow><munderover><mi>Σ</mi><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mrow><msub><mi>I</mi><mn>1</mn></msub><mo>-</mo><msub><mi>k</mi><mn>1</mn></msub><mo>-</mo><mn>1</mn></mrow></munderover><mo>|</mo><mo>|</mo><msub><mi>C</mi><mn>1</mn></msub><mrow><mo>(</mo><msub><mi>u</mi><mrow><msub><mi>k</mi><mn>1</mn></msub><mo>+</mo><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mo>-</mo><msub><mi>C</mi><mn>1</mn></msub><mrow><mo>(</mo><msub><mi>u</mi><mrow><msub><mi>k</mi><mn>1</mn></msub><mo>+</mo><mi>i</mi></mrow></msub><mo>)</mo></mrow><mo>|</mo><mo>|</mo></mrow></mfrac><mo>,</mo></mrow>]]></math>id="icf0015"file="A2008101147330003C5.tif"wi="61"he="18"top="118"left="29"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>||·||表示空間的歐氏距離,步驟(2.3)按下述步驟計(jì)算曲線C2(t)中序號(hào)為i的控制頂點(diǎn)的值P2,i步驟(2.3.1)設(shè)置初值<mathsid="math0007"num="0007"><math><![CDATA[<mrow><msubsup><mover><mi>P</mi><mo>~</mo></mover><mi>i</mi><mn>0</mn></msubsup><mo>=</mo><msub><mi>P</mi><mrow><mn>1</mn><mo>,</mo><mi>i</mi></mrow></msub><mo>,</mo></mrow>]]></math>id="icf0016"file="A2008101147330003C6.tif"wi="14"he="5"top="152"left="78"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>i=I1-k1,I1-k1+1,…,I1-1步驟(2.3.2)按下式遞推計(jì)算空間點(diǎn)id="icf0017"file="A2008101147330003C7.tif"wi="4"he="5"top="163"left="104"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/><mathsid="math0008"num="0008"><math><![CDATA[<mrow><mfencedopen='{'close=''><mtable><mtr><mtd><msubsup><mover><mi>P</mi><mo>~</mo></mover><mi>i</mi><mi>r</mi></msubsup><mo>=</mo><msubsup><mover><mi>P</mi><mo>~</mo></mover><mi>i</mi><mrow><mi>r</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mi>i</mi><mo>=</mo><msub><mi>I</mi><mn>1</mn></msub><mo>-</mo><msub><mi>k</mi><mn>1</mn></msub><mo>,</mo><mo>·</mo><mo>·</mo><mo>·</mo><mo>,</mo><msub><mi>I</mi><mn>1</mn></msub><mo>-</mo><mi>r</mi><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><msubsup><mover><mi>P</mi><mo>~</mo></mover><mi>i</mi><mi>r</mi></msubsup><mo>=</mo><mfrac><mrow><msubsup><mover><mi>P</mi><mo>~</mo></mover><mi>i</mi><mrow><mi>r</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>λ</mi><mo>)</mo></mrow><msubsup><mover><mi>P</mi><mo>~</mo></mover><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mi>r</mi></msubsup></mrow><mi>λ</mi></mfrac><mi>i</mi><mo>=</mo><msub><mi>I</mi><mn>1</mn></msub><mo>-</mo><mi>r</mi><mo>,</mo><msub><mi>I</mi><mn>1</mn></msub><mo>-</mo><mi>r</mi><mo>+</mo><mn>1</mn><mo>·</mo><mo>·</mo><mo>·</mo><mo>,</mo><msub><mi>I</mi><mn>1</mn></msub><mo>-</mo><mn>1</mn></mtd></mtr></mtable></mfenced><mi>r</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>·</mo><mo>·</mo><mo>·</mo><mo>,</mo><msub><mi>k</mi><mn>1</mn></msub><mo>-</mo><mn>1</mn></mrow>]]></math></maths>其中<mathsid="math0009"num="0009"><math><![CDATA[<mrow><mi>λ</mi><mo>=</mo><mfrac><mrow><msub><mi>u</mi><msub><mi>I</mi><mn>1</mn></msub></msub><mo>-</mo><msub><mi>u</mi><mi>i</mi></msub></mrow><mrow><msub><mi>u</mi><mrow><mi>i</mi><mo>+</mo><mi>r</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>u</mi><mi>i</mi></msub></mrow></mfrac></mrow>]]></math>id="icf0019"file="A2008101147330003C9.tif"wi="23"he="9"top="198"left="52"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>步驟(2.3.3)得出P2,i的設(shè)置結(jié)果<mathsid="math0010"num="0010"><math><![CDATA[<mrow><msub><mi>P</mi><mrow><mn>2</mn><mo>,</mo><mi>i</mi></mrow></msub><mo>=</mo><mfencedopen='{'close=''><mtable><mtr><mtd><msub><mi>P</mi><mrow><mn>1</mn><mo>,</mo><mi>i</mi></mrow></msub></mtd><mtd><mi>i</mi><mo>=</mo><mn>0,1</mn><mo>,</mo><mo>·</mo><mo>·</mo><mo>·</mo><mo>,</mo><msub><mi>I</mi><mn>1</mn></msub><mo>-</mo><msub><mi>k</mi><mn>1</mn></msub><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><msubsup><mover><mi>P</mi><mo>~</mo></mover><mi>i</mi><mrow><msub><mi>k</mi><mn>1</mn></msub><mo>-</mo><mn>1</mn></mrow></msubsup></mtd><mtd><mi>i</mi><mo>=</mo><msub><mi>I</mi><mn>1</mn></msub><mo>-</mo><msub><mi>k</mi><mn>1</mn></msub><mo>,</mo><msub><mi>I</mi><mn>1</mn></msub><mo>-</mo><msub><mi>k</mi><mn>1</mn></msub><mo>+</mo><mn>1</mn><mo>,</mo><mo>·</mo><mo>·</mo><mo>·</mo><mo>,</mo><msub><mi>I</mi><mn>1</mn></msub><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><msub><mi>R</mi><mn>1</mn></msub></mtd><mtd><mi>i</mi><mo>=</mo><msub><mi>I</mi><mn>1</mn></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math></maths>步驟(2.4)按照步驟(2.2)所述的方式將所述曲線C2(t)延伸到點(diǎn)R2,并且設(shè)延伸后的包含曲線C2(t)的曲線為C3(t),步驟(2.5)再按照步驟(2.2)所述的方式將所述曲線C3(t)延伸到所述曲線D(s)的第0個(gè)控制頂點(diǎn)Q0,并且設(shè)延伸后的包含曲線C3(t)的曲線為C4(t)<mathsid="math0011"num="0011"><math><![CDATA[<mrow><msub><mi>C</mi><mn>4</mn></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>Σ</mi><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mrow><msub><mi>I</mi><mn>4</mn></msub><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>P</mi><mrow><mn>4</mn><mo>,</mo><mi>i</mi></mrow></msub><msub><mi>N</mi><mrow><mi>i</mi><mo>,</mo><msub><mi>c</mi><mn>4</mn></msub></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow>]]></math></maths>其中I4是曲線C4(t)所含的控制頂點(diǎn)個(gè)數(shù)且有I4=I1+3,id="icf0022"file="A2008101147330004C2.tif"wi="6"he="4"top="61"left="136"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>是曲線C4(t)中序號(hào)為i的B樣條基函數(shù),i=0,1,…,I1+3,id="icf0023"file="A2008101147330004C3.tif"wi="6"he="4"top="71"left="88"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>定義在如下歸一化形式的節(jié)點(diǎn)向量序列之上步驟(3),修改曲線C4(t)的兩個(gè)控制頂點(diǎn)id="icf0025"file="A2008101147330004C5.tif"wi="5"he="4"top="99"left="96"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>和id="icf0026"file="A2008101147330004C6.tif"wi="8"he="4"top="99"left="108"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>,使得修改后的曲線C4(t)與曲線D(s)在其交接處即t=1和s=0處實(shí)現(xiàn)2階幾何連續(xù),id="icf0027"file="A2008101147330004C7.tif"wi="5"he="4"top="110"left="111"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>和id="icf0028"file="A2008101147330004C8.tif"wi="8"he="4"top="110"left="123"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>和計(jì)算方法如下<mathsid="math0012"num="0012"><math><![CDATA[<mrow><msub><mi>P</mi><mrow><mn>4</mn><mo>,</mo><msub><mi>I</mi><mn>1</mn></msub><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><mfrac><mn>1</mn><mrow><msubsup><mi>N</mi><mrow><msub><mi>I</mi><mn>1</mn></msub><mo>+</mo><mn>1</mn><mo>,</mo><msub><mi>C</mi><mn>4</mn></msub></mrow><mo>′</mo></msubsup><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></mfrac><mo>[</mo><mi>α</mi><mrow><mo>(</mo><msub><mi>Q</mi><mn>0</mn></msub><msubsup><mi>N</mi><mrow><mn>0</mn><mo>,</mo><mi>D</mi></mrow><mo>′</mo></msubsup><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow><mo>+</mo><msub><mi>Q</mi><mn>1</mn></msub><msubsup><mi>N</mi><mrow><mn>1</mn><mo>,</mo><mi>D</mi></mrow><mo>′</mo></msubsup><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow><mo>)</mo></mrow><mo>-</mo><msub><mi>P</mi><mrow><mn>4</mn><mo>,</mo><msub><mi>I</mi><mn>1</mn></msub><mo>+</mo><mn>2</mn></mrow></msub><msubsup><mi>N</mi><mrow><msub><mi>I</mi><mn>1</mn></msub><mo>+</mo><mn>2</mn><mo>,</mo><msub><mi>C</mi><mn>4</mn></msub></mrow><mo>′</mo></msubsup><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow><mo>]</mo></mrow>]]></math></maths><mathsid="math0013"num="0013"><math><![CDATA[<mrow><msub><mi>P</mi><mrow><mn>4</mn><mo>,</mo><msub><mi>I</mi><mn>1</mn></msub></mrow></msub><mo>=</mo><mfrac><mn>1</mn><mrow><msubsup><mi>N</mi><mrow><msub><mi>I</mi><mn>1</mn></msub><mo>,</mo><msub><mi>C</mi><mn>4</mn></msub></mrow><mrow><mo>′</mo><mo>′</mo></mrow></msubsup><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></mfrac><mo>[</mo><msup><mi>α</mi><mn>2</mn></msup><mrow><mo>(</mo><msub><mi>Q</mi><mn>0</mn></msub><msubsup><mi>N</mi><mrow><mn>0</mn><mo>,</mo><mi>D</mi></mrow><mrow><mo>′</mo><mo>′</mo></mrow></msubsup><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow><mo>+</mo><msub><mi>Q</mi><mn>1</mn></msub><msubsup><mi>N</mi><mrow><mn>1</mn><mo>,</mo><mi>D</mi></mrow><mrow><mo>′</mo><mo>′</mo></mrow></msubsup><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow><mo>+</mo><msub><mi>Q</mi><mn>2</mn></msub><msubsup><mi>N</mi><mrow><mn>2</mn><mo>,</mo><mi>D</mi></mrow><mrow><mo>′</mo><mo>′</mo></mrow></msubsup><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow><mo>)</mo></mrow><mo>-</mo><msub><mi>P</mi><mrow><mn>4</mn><mo>,</mo><msub><mi>I</mi><mn>1</mn></msub><mo>+</mo><mn>2</mn></mrow></msub><msubsup><mi>N</mi><mrow><msub><mi>I</mi><mn>1</mn></msub><mo>+</mo><mn>2</mn><mo>,</mo><msub><mi>C</mi><mn>4</mn></msub></mrow><mrow><mo>′</mo><mo>′</mo></mrow></msubsup><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><msub><mi>P</mi><mrow><mn>4</mn><mo>,</mo><msub><mi>I</mi><mn>1</mn></msub><mo>+</mo><mn>1</mn></mrow></msub><msubsup><mi>N</mi><mrow><msub><mi>I</mi><mn>1</mn></msub><mo>+</mo><mn>1</mn><mo>,</mo><msub><mi>C</mi><mn>4</mn></msub></mrow><mrow><mo>′</mo><mo>′</mo></mrow></msubsup><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow><mo>]</mo></mrow>]]></math></maths>其中α為用戶指定的值,取值范圍為(0,1]之間的正值,N′和N″為相應(yīng)的B樣條基函數(shù)的1階導(dǎo)數(shù)以及2階導(dǎo)數(shù)。全文摘要一種基于延伸的產(chǎn)品外形空間曲線拼接的CAD方法,屬于曲線曲面的CAD領(lǐng)域,其特征在于,初始化階段輸入要進(jìn)行拼接操作的兩條空間曲線C<sub>1</sub>和D;對(duì)其中的曲線C<sub>1</sub>相繼實(shí)行三次延伸操作使得與曲線D實(shí)現(xiàn)相連通;調(diào)整延伸曲線的兩個(gè)控制頂點(diǎn),實(shí)現(xiàn)兩條曲線的二階幾何連續(xù)?;谠摲椒ㄔ诓惶砑拥谌龡l曲線的情況下,既填補(bǔ)了兩條曲線間原有的縫隙,又不改變曲線的原有部分,實(shí)現(xiàn)了一種新的曲線拼接效果。文檔編號(hào)G06F17/50GK101299278SQ20081011473公開(kāi)日2008年11月5日申請(qǐng)日期2008年6月11日優(yōu)先權(quán)日2008年6月11日發(fā)明者仇榮琦,劉永進(jìn),姜昌浩,張文琦,胡事民,彧臧申請(qǐng)人:清華大學(xué)