第4章曲線和曲面_第1頁
第4章曲線和曲面_第2頁
第4章曲線和曲面_第3頁
第4章曲線和曲面_第4頁
第4章曲線和曲面_第5頁
已閱讀5頁,還剩172頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第四章 曲線和曲面,第一節(jié) 曲線和曲面表示的基礎(chǔ)知識(shí) 第二節(jié) Hermite多項(xiàng)式 第三節(jié) Coons曲面 第四節(jié) Bezier曲線 第五節(jié) Bezier曲面 第六節(jié) B樣條曲線 第七節(jié) B樣條曲面,第一節(jié) 曲線和曲面表示的基礎(chǔ)知識(shí),曲線和曲面參數(shù)表示 (1)與坐標(biāo)軸相關(guān)的,不便于進(jìn)行坐標(biāo)變換; (2)會(huì)出現(xiàn)斜率為無窮大的情況; (3)難以靈活地構(gòu)造復(fù)雜的曲線、曲面 (4)非參數(shù)的顯示方程只能描述平面曲線,空間曲線必須定義為兩張柱面的交線。 (5)假如我們使用非參數(shù)化函數(shù),在某個(gè)xoy坐標(biāo)系里一條曲線,一些x值對(duì)應(yīng)多個(gè)y值,而一些y值對(duì)應(yīng)多個(gè)x值。,在空間曲線的參數(shù)表示中,曲線上每一點(diǎn)的坐標(biāo)均

2、要表示成某個(gè)參數(shù)t的一個(gè)函數(shù)式,則曲線上每一點(diǎn)笛卡爾坐標(biāo)參數(shù)式是:,,,把三個(gè)方程合寫到一起,曲線上一點(diǎn)坐標(biāo)的矢量表示是:,關(guān)于參數(shù)t的切矢量或?qū)Ш瘮?shù)是: 曲面寫為參數(shù)方程形式為: 曲線或曲面的某一部分,可以簡(jiǎn)單地用au,wb界定它的范圍,直線段 端點(diǎn)坐標(biāo)分別是 P1x1,y1,P2x2,y2, 直線段的參數(shù)表達(dá)式是: P(t)= P1+( P2- P1)t = (1-t)P1+ tP2 0t1; 參數(shù)表示相應(yīng)的x,y坐標(biāo)分量是: x(t)= x1+(x2-x1) t y(t)= y1+(y2-y1) t 0t1,參數(shù)方程具有如下優(yōu)點(diǎn): 有更大的自由度來控制曲線、曲面的形狀。 便于坐標(biāo)變換 便

3、于處理斜率為無限大的問題,不會(huì)因此中斷計(jì)算 代數(shù)、幾何相關(guān)和無關(guān)的變量是完全分離的,而且對(duì)變量個(gè)數(shù)不限,便于向高維空間擴(kuò)展。 t0,1, 直接定義了邊界。便于曲線和曲面的分段、分片描述。 易于用矢量和矩陣表示,從而簡(jiǎn)化了計(jì)算。,曲線和曲面可以分為兩類。一類要求通過事先給定的離散的點(diǎn),稱為是插值的曲線或曲面。另一類不要求通過事先給定的各離散點(diǎn),而只是用給定各離散點(diǎn)形成的控制多邊形來控制形狀,稱為是逼近的曲線或曲面。 插值 構(gòu)造一條曲線順序通過型值點(diǎn),稱為對(duì)這些型值點(diǎn)進(jìn)行插值(interpolation)。 逼近 構(gòu)造一條曲線,使它在某種意義上最接近這些型值點(diǎn)但不完全通過,稱之為對(duì)這些型值點(diǎn)進(jìn)行逼

4、近(approximation)。,參數(shù)連續(xù)性 一函數(shù)在某一點(diǎn)x0處具有相等的直到k階的左右導(dǎo)數(shù),稱它在x0處是k次連續(xù)可微的,或稱它在x0處是k階連續(xù)的,記作Ck。幾何上C0、C1、C2依次表示該函數(shù)的圖形、切線方向、曲率是連續(xù)的。參數(shù)曲線的可微性稱為參數(shù)曲線的連續(xù)性。 幾何連續(xù)性 兩曲線段的相應(yīng)的弧長(zhǎng)參數(shù)化在公共連接點(diǎn)處參數(shù)導(dǎo)數(shù)成比例而不是相等,則稱它們?cè)谠擖c(diǎn)處具有k階幾何連續(xù)性,記作Gk 。 零階幾何連續(xù)G0與零階參數(shù)連續(xù)C0是一致的。 一階幾何連續(xù)G1指一階導(dǎo)數(shù)在兩個(gè)相鄰曲線段的交點(diǎn)處成比例,即方向相同,大小不同。 二階幾何連續(xù)G2指兩個(gè)曲線段在交點(diǎn)處其一階和二階導(dǎo)數(shù)均成比例。,曲線段

5、間C1、C2和G1、G2連續(xù)性定義 (1)Q1(1)=Q2(0),則Q1(t)和Q2(t)在P處有C0和G0連續(xù)性 (2)Q1(1)和Q2(0)在P處重合,且其在P點(diǎn)處的切矢量方向相同,大小相等,則Q1(t)和Q2(t)在P處有C1連續(xù)性 (3)Q1(1)和Q2(0)在P處重合,且其在P點(diǎn)處的切矢量方向相同,大小不等,則Q1(t)和Q2(t)在P處有G1連續(xù)性,Q1(0),Q1(1),Q2(0),Q2(1),Q1(0),Q2(1),Q1(1),Q2(0),Q1(0),Q2(1),Q1(1),Q2(0),曲線段間C1、C2和G1、G2連續(xù)性定義 (4)Q1(1)和Q2(0)在P處已有C0和C1連

6、續(xù),且Q”1(1)和Q”2(0)大小方向均相同,則Q1(t)和Q2(t)在P處有C2連續(xù)性 (5)Q1(1)和Q2(0)在P處已有G0和G1連續(xù),且Q”1(1)和Q”2(0)方向相同但大小不等,則Q1(t)和Q2(t)在P處有G2連續(xù)性 (6)推廣之,Q1(1)和Q2(0)在P處已有C0、C1、Cn連續(xù),若Q(n)1(1)和Q(n)2(0)在P處大小和方向均相同,則說Q1(t)和Q2(t)在P處具有Cn連續(xù)性,Q1(0),Q1(1),Q2(0),Q2(1),Q1(0),Q1(1),Q2(0),Q2(1),曲線段間C1、C2和G1、G2連續(xù)性定義 (1)Q1(1)=Q2(0),則Q1(t)和Q2

7、(t)在P處有C0和G0連續(xù)性 (2)Q1(1)和Q2(0)在P處重合,且其在P點(diǎn)處的切矢量方向相同,大小相等,則Q1(t)和Q2(t)在P處有C1連續(xù)性 (3)Q1(1)和Q2(0)在P處重合,且其在P點(diǎn)處的切矢量方向相同,大小不等,則Q1(t)和Q2(t)在P處有G1連續(xù)性 (4)Q1(1)和Q2(0)在P處已有C0和C1連續(xù),且Q”1(1)和Q”2(0)大小方向均相同,則Q1(t)和Q2(t)在P處有C2連續(xù)性 (5)Q1(1)和Q2(0)在P處已有G0和G1連續(xù),且Q”1(1)和Q”2(0)方向相同但大小不等,則Q1(t)和Q2(t)在P處有G2連續(xù)性 (6)推廣之,Q1(1)和Q2(

8、0)在P處已有C0、C1、Cn連續(xù),若Q(n)1(1)和Q(n)2(0)在P處大小和方向均相同,則說Q1(t)和Q2(t)在P處具有Cn連續(xù)性,C0連續(xù)的線性插值,C2連續(xù)的樣條插值,光順 光順(smoothness)是指曲線的拐點(diǎn)不能太多,要光滑順暢。對(duì)于平面曲線相對(duì)光順的條件應(yīng)該是: (1)具有二階幾何連續(xù)(G2); (2)不存在多余拐點(diǎn)和奇異點(diǎn); (3)曲率變化較小。,第二節(jié) Hermite多項(xiàng)式,已知函數(shù)f(t)在k+1個(gè)點(diǎn)ti處的函數(shù)值和導(dǎo)數(shù)值f (j)(ti),i=0,1,k,j=0,1,mi-1,要求確定一個(gè)N = m0 + m1 + + mk - 1次的多項(xiàng)式P(t),滿足下面

9、的插值條件:,一、 Lagrange插值 已知f(t)在k+1個(gè)點(diǎn)上的函數(shù)值f(ti),求一個(gè)k次多項(xiàng)式使之滿足,。,設(shè)表示一條曲線的某個(gè)函數(shù)f(t)在三點(diǎn)t0,t1,t2的函數(shù)值f(t0),f(t1),f(t2),根據(jù)Lagrange插值法,則二次多項(xiàng)式P(t)可表示為:,g0(t),g2(t),g1(t),設(shè)表示一條曲線的某個(gè)函數(shù)f(t)在四點(diǎn)t0,t1,t2,t3的函數(shù)值f(t0),f(t1),f(t2),f(t3),根據(jù)Lagrange插值法,則三次多項(xiàng)式P(t)可表示為:,g0(t),g3(t),g1(t),g2(t),一般地,對(duì)于k+1個(gè)點(diǎn),,若曲線,表達(dá)式中,滿足,是連續(xù)的, ,

10、則,稱為混合(調(diào)和)函數(shù)或基,稱為控制點(diǎn)。,函數(shù),k+1個(gè)點(diǎn),二、三次Hermite曲線 考察k=1,m0 = m1 = 2的情形 已知表示一條曲線的某個(gè)函數(shù)f(t)在兩點(diǎn)t0,t1的函數(shù)值f(t0), f(t1)和一階導(dǎo)數(shù)值f(t0), f(t1),求三次多項(xiàng)式P(t):,把a(bǔ)0,a1,a2和a3代入(4-1)式則有:,經(jīng)整理,所求多項(xiàng)式P 0(t)可以寫出如下: 式中選取兩個(gè)端點(diǎn)及其及其切向量作為曲線構(gòu)造條件。,混合函數(shù)如下:,經(jīng)驗(yàn)證可知:,三、規(guī)范化三次Hermite插值 為了使P0(t)的定義區(qū)間t0tt1變?yōu)閰^(qū)間0u1,可以做如下變換 解出 ,代入混合函數(shù)式中,得:,將關(guān)于u的混合函

11、數(shù)代入,所求的三次多項(xiàng)式成為:,令,得,圖4 - 5 規(guī)范化3次Hermite插值的四個(gè)調(diào)和函數(shù),四、分段3次Hermite曲線 將前面t0和t1視為ti和ti+1,設(shè)給定f(ti),f(ti+1),f(ti),f(ti+1),則在區(qū)間ti,ti+1的Hermite三次插值多項(xiàng)式Pi(t)是:,為了完整地寫出這個(gè)插值多項(xiàng)式,可以在區(qū)間ti,ti+1中引入如下一些基本函數(shù):,a0,0,a1,0,n=1,為了完整地寫出這個(gè)插值多項(xiàng)式,可以在區(qū)間ti,ti+1中引入如下一些基本函數(shù):,n=2,a0,0,a1,0,a2,0,完整的插值多項(xiàng)式可寫為: 上式區(qū)間t0,tn中有定義,且為分段定義。在每個(gè)區(qū)間

12、 ti,ti+1上,都恰有四項(xiàng)。滿足插值條件,每段曲線Pi(t)只在ti,ti+1中有定義:,自變量的線性變換 用逆變換 代入,將所得關(guān)于u的多項(xiàng)式記為 ,得,其中,例:設(shè)在平面上有兩點(diǎn)P0,Pl,它們的位置向量分別為(1,1),(4,2),在P0的導(dǎo)數(shù)值即在該點(diǎn)的切線向量P0 =(1,1),在Pl處P1 =(1,-1),構(gòu)造曲線。,第三節(jié) Coons曲面,uw表示了曲面片的方程 0w,1w,u0,u1四條邊界曲線 u0u邊界線的切向量 u0w 邊界線的跨界切向量 uwuu,uwuw,uwww曲面片uw關(guān)于u和w的二階偏導(dǎo)數(shù)向量 u0uu 表示邊界線u0上的二階切向量 u0ww表示邊界線u0上

13、的 二階跨界切向量 uwuw為曲面片P在點(diǎn)(u,w)處的 扭曲向量。 00,01,10,11表示曲面片 四個(gè)角點(diǎn) 00w,01w,10w,11w, 00u,01u,10u,11u 四個(gè)角點(diǎn)的切向量 00uw,01uw,10uw,11uw四個(gè)角點(diǎn)的扭曲向量,一、給定邊界曲線的曲面片 Coons給出的一個(gè)解法是:尋找兩個(gè)混合函數(shù)f0(t)和f1(t),它們是連續(xù)的,并且滿足f0(0)=1,f0(1)=0,f1(0)=0,f1(1)=1,且f0(t)+f1(t)=1,0t1。 利用這樣的混合函數(shù),通過四條邊界構(gòu)造曲面片,并通過疊加修正曲面片,產(chǎn)生滿足用戶需要的曲面。,問題1:求通過四條邊界線的曲面給

14、定四條邊界曲線u0,u1,0w,1w,且0u1,0w1在u向進(jìn)行線性插值,得到直紋面為: 在w向進(jìn)行線性插值,得到直紋面為:,Ps(u,w)上的任意一點(diǎn),其位移矢量包含兩個(gè)部分,一部分是由于線性插值而產(chǎn)生的位移,另一部分是由于邊界曲線而產(chǎn)生的位移。,若把這兩張直紋面疊加可得到一張新曲面Ps(u,w):,為消除Ps(u,w)中由于線性插值而產(chǎn)生的位移,需要構(gòu)造一個(gè)新的曲面P3(u,w),構(gòu)造曲面P3(u,w)后,從Ps(u,w)中去除P3(u,w),即去除線性插值的成分,則得到Coons構(gòu)造曲面 P(u,w)= Ps(u,w) - P3(u,w) = P1(u,w) + P2(u,w)- P3(

15、u,w) 可寫成如下形式:,其中矩陣M是: 矩陣中四個(gè)元素是四個(gè)角點(diǎn)的位置向量,可用已知四條邊界曲線計(jì)算求出。 u0,u1可以是關(guān)于u的三次多項(xiàng)式,0w,1w可以是關(guān)于w的三次多項(xiàng)式,混合函數(shù)也是不超過三次的關(guān)于u或w的三次多項(xiàng)式,這時(shí)公式關(guān)于u看,或關(guān)于w看,都是三次多項(xiàng)式,是關(guān)于u或w的雙三次多項(xiàng)式,不難驗(yàn)證它們符合所提問題的要求,例如我們來驗(yàn)證0w是它的一條邊界線,這只要把u=0代入公式右端,得,二、給定邊界曲線和跨界切向量的曲面片邊界線為指定曲線且有指定的跨界切向量 。應(yīng)用上節(jié)定義的四個(gè)混合函數(shù)q00(u), q01(u), q10(u), q11(u)。,這四個(gè)函數(shù)均是三次多項(xiàng)式。故

16、連續(xù)可微,并且還滿足下面的條件:,設(shè)已知四條邊界曲線u0,u1,0w,1w 及沿這四條邊界曲線的跨界切向量 u0w,u1w,0wu,1wu。 求出四個(gè)角點(diǎn)的位置向量00,01,10,11, 切向量00w,01w,10w,11w, 00u,01u,10u,11u, 扭曲向量00uw,01uw,10uw,11uw, 寫出符合要求曲面片的數(shù)學(xué)表達(dá)式如下:,容易地驗(yàn)證所寫出的公式滿足要求,例如以u(píng)=0代入該式右端,得:,曲面片沿邊界線取給定的各跨界切向量,可先對(duì)該式關(guān)于某一變量求導(dǎo),例如對(duì)u求導(dǎo),然后再代入u=0,這時(shí)有,三、給定四角點(diǎn)及其切向量和扭曲向量的 曲面片已知角點(diǎn)的位置向量00,01,10,

17、11,切向量00w,01w,10w,11w,00u,01u,10u,11u,以及扭曲向量00uw,01uw,10uw,11uw,,已知角點(diǎn)位置向量00,10以及在這兩點(diǎn)關(guān)于u的切向量00u和01u,可以用Hermite插值公式來指定一條u邊界線:,將上兩式代入前式,就可以得到:,例:給出四個(gè)角點(diǎn)以及在該角點(diǎn)上的切向量和扭曲向量來構(gòu)造Coons曲面表達(dá)式。設(shè)在平面上有四點(diǎn)P0,Pl,P2,P3,它們的位置向量分別為(0,0,0),(0,0.75,0),(0.75,0,0),(0.75,0.75,0)。該四點(diǎn)的切向量、跨界切向量和扭曲向量,定義在關(guān)于角點(diǎn)的信息矩陣M中:,第四節(jié) Bezier曲線和

18、曲面,1.Bezier曲線定義 給出型值點(diǎn)P0,P1,Pn,它們所確定的n次Bezier曲線是:,是Bernstein多項(xiàng)式,混合函數(shù) 涉及到的0!及00,按約定均為1。 在n=1時(shí),公式成為:(一次Bezier曲線是直線段) 在n=2時(shí),公式成為: (二次Bezier曲線是拋物線),在n=3時(shí),公式成為: (三次Bezier曲線是三次參數(shù)多項(xiàng)式曲線),Bernstein基函數(shù)的性質(zhì),( 1)正性,(2)端點(diǎn)性質(zhì),(3)規(guī)范性,(4)對(duì)稱性,(5)權(quán)性,(6)遞推性,在 處達(dá)到最大值。,(7)導(dǎo)函數(shù),(8)最大值, Bezier曲線的性質(zhì),P(0)= P0,P(1)= P1,曲線通過所給出型值

19、點(diǎn)列的起點(diǎn)和終點(diǎn)。,Bezier曲線的對(duì)稱性, 二階導(dǎo)數(shù), 曲線的凸包性 對(duì)給定的型值點(diǎn)P0,P1,Pn點(diǎn)集,點(diǎn)集 稱作n+1個(gè)點(diǎn)張成的凸包, 幾何不變性,三、Bezier曲線的拼接,P0P1P2P3和Q0QlQ2Q3,兩個(gè)Bezier多邊形 曲線在連接點(diǎn)處C0連續(xù)的條件是P3=Q0 曲線在連接點(diǎn)處G1連續(xù),即一階導(dǎo)數(shù)幾何連續(xù),條件是Q0=aP3,a是一個(gè)正數(shù)。 P2 , P3=Q0 , Ql,共線且P2 和Ql在P3兩側(cè),連接點(diǎn)處達(dá)到C2連續(xù),即二階導(dǎo)數(shù)參數(shù)連續(xù)的條件,對(duì)前面的公式求兩次導(dǎo)數(shù),可得,,于是知, 要求, 即 ,注意到Q0=P3,由此得:,四、Bezier曲線繪制 利用定義式 B

20、ezier曲線的繪制,可以利用其定義式,對(duì)參數(shù)t選取足夠多的值,計(jì)算曲線上的一些點(diǎn),然后用折線連接來近似畫出實(shí)際的曲線。隨著選取點(diǎn)增多,折線和曲線可以任意接近。 假設(shè)給定的四個(gè)型值點(diǎn)是P0=(1,1),Pl=(2,3),P2=(4,3), P3=(3,1),則計(jì)算結(jié)果見表,幾何作圖法,記點(diǎn)Pk,Pk+l,Pk+n可以生成的Bzier曲線為 ,0t1,則成立下面的遞推關(guān)系:,證明上式,要用到組合等式:,上式改寫為:,void bez_to_points(int n,int npoints,double P,double points) /P為控制點(diǎn)坐標(biāo) / points為采用幾何作圖算法生成的B

21、ezier曲線上的離散點(diǎn)序列 /離散點(diǎn)序列points的個(gè)數(shù)為npoints+1 /控制點(diǎn)P的個(gè)數(shù)為n +1 double t,delt; delt=1.0/(double)npoints;/將參數(shù)t npoints等分 t=0.0; for(int i=0;i=npoints;i+) /分別求出npoints+1個(gè)離散點(diǎn)points的坐標(biāo) pointsi=decas(n, P, t); t+=delt; ,double decas(int n,double P,double t) int m,i; double *R, *Q, P0; R = new doublen +1;Q = new d

22、oublen +1; for(i=0;i0;m-) /n次Bezier曲線在點(diǎn)t的值,可由兩條n-1次Bezier曲線 /在點(diǎn)t的值通過線性組合而求得。 for(i=0;im;i+)Qi= R i+t*( R i+1- R i) ; for(i=0;im;i+)Ri= Q i; P0=R0; delete R; delete Q; return (P0); ,設(shè)給出四點(diǎn)的坐標(biāo)是(1,1),(2,3),(4,3),(3,1),求所確定三次Bezier曲線在t=1/3時(shí)的值P(1/3),算法的計(jì)算過程,Bezier幾何作圖算法計(jì)算過程,分裂法 思想:將原控制點(diǎn)集分為兩個(gè)點(diǎn)數(shù)相同的新控制點(diǎn)集,分別對(duì)

23、應(yīng)原曲線的前半段和后半段,新控制點(diǎn)集比原控制點(diǎn)集更接近直線,分裂過程繼續(xù)進(jìn)行,控制點(diǎn)集會(huì)迅速向曲線靠近,當(dāng)滿足某個(gè)允許的界限時(shí),可依次連接各點(diǎn)的折線來表示曲線 設(shè)控制點(diǎn)序列P0,P1,Pn確定的n次Bezier曲線是P(t),用如下遞歸方式計(jì)算另一組點(diǎn)集: 如果令Pa(s)和Pb(s)分別是以控制點(diǎn)序列 和 確定的Bezier曲線,其中0s1,那么就有:,己知四點(diǎn)P0,P1,P2,P3,確定了一條三次Bezier曲線P(t),可寫出下式,,分裂法中的遞歸計(jì)算,分裂法的示意圖,驗(yàn)證Bezier曲線分成前后兩段的正確性。 以P0的系數(shù)為例,驗(yàn)證兩端它的系數(shù)是相等的。左端顯然就是B0,3(t)=(1

24、-t)3。再看右端。 若0t ,這時(shí)就用前半段的表達(dá)式,觀察分裂計(jì)算圖注意到 中有1份P0, 中有 份, 中是 份, 中是 份。 右端對(duì) t1,注意到僅 中有 份的P0。,設(shè)己知三次Bezier曲線P(t)的控制頂點(diǎn)是P0,P1,P2,P3,在P( )處將曲線分為兩段,求出前半段的控制頂點(diǎn)Q0,Ql,Q2,Q3和后半段的控制頂點(diǎn)R0,R1,R2,R3。有算法如下,void split_Bezier(Point P) Point R4,Q4; int i,j; for(i=0;i=3;i+) Ri=Pi; for(i=0;i=2;i+) Qi=R0; for(j=0;j=2-i;j+) /分別對(duì)

25、相鄰兩控制點(diǎn)間的線段進(jìn)行分裂 Rj.x=(Rj.x+Rj+1.x)/2; Rj.y=(Rj.y+Rj+1.y)/2; Q3=R0; ,分裂算法的計(jì)算,根據(jù)Bezier曲線的凸包性質(zhì),知道曲線上任意一點(diǎn)到線段P0P3的距離,小于P1和P2到線段P0P3距離中的較大者,即有: 任意事先給定的對(duì)畫出曲線近似程度的要求0,可以取 max(d(P1,P0P3),d(P2,P0P3) 為分裂停止的條件。,void new_split_Bezier(Point P) Point R4,Q4; int i,j; const double epsilon=0.01; if (maxdistance(P)epsi

26、lon) /*maxdistance(P)為求max(d(P1,P0P3),d(P2,P0P3)的函數(shù)*/ MoveTo(P0.x,P0.y); LineTo(P3.x,P3.y); else for(i=0;i=3;i+) Ri=Pi; for(i=0;i=2;i+) Qi=R0; for(j=0;j=2-i;j+) Rj.x=(Rj.x+Rj+1.x)/2; Rj.y=(Rj.y+Rj+1.y)/2; Q3=R0; new_split_Bezier(Q);new_split_Bezier(R); ,double maxdistance(Point p) double s1,s2,h1,h2

27、; s1=(p0.x -p1.x)*(p0.y +p1.y)+ (p1.x -p3.x)*(p1.y +p3.y)+ (p3.x -p0.x)*(p3.y +p0.y); s2=(p0.x -p2.x)*(p0.y +p2.y)+ (p2.x -p3.x)*(p2.y +p3.y)+ (p3.x -p0.x)*(p3.y +p0.y); double distance=sqrt(p0.x- p3.x)*(p0.x-p3.x)+ (p0.y-p3.y)*(p0.y-p3.y);h1=fabs(s1/distance); h2=fabs(s2/distance); return max(h1,h2

28、); ,五、Bzier曲線的升階,設(shè)給定原始控制頂點(diǎn)P0,P1,Pn,定義了一條n次Bzier曲線,,增加一個(gè)頂點(diǎn),曲線提升一階后,仍定義同一條曲線的新控制頂點(diǎn)為,則有,對(duì)上式左邊乘以 得,比較等式兩邊 項(xiàng)的系數(shù),得,兩邊除以 ,得,式中,1 新的控制頂點(diǎn) 是以參數(shù)值 按分段線性插值從原始控制多邊形得出的。 2 升階后新的控制多邊形在原始控制多邊形的凸包內(nèi)。 3 控制多邊形更靠近曲線。,此式說明:,六、有理Bezier曲線,圖中h0=h1= h3=1,當(dāng)h2=0、1/2、1、2、4時(shí)曲線逐漸地靠近P2點(diǎn),第五節(jié) Bezier曲面,若在空間給定(m+1)(n+1)個(gè)控制點(diǎn),Vij,i=0,1,m

29、,j=0,1,n,令 上式曲面為mn次的Bezier曲面,二、Bzier曲面的性質(zhì),(2)邊界線位置,(1)端點(diǎn)位置,是曲面 的四個(gè)端點(diǎn),Bzier曲面的四條邊界線,以 、 和,,,為控制多邊,、,形的Bzier曲線,(3)端點(diǎn)的切平面,,,相切,、 、 、 三角面在 、 、 、 處與曲面,(4)凸包性,位于其控制頂點(diǎn)Vij, (i=0,1,m,j=0,1,n) 的凸包內(nèi)。,的形狀和位置與坐標(biāo)系選 擇無關(guān),僅和點(diǎn)Vij,(i=0,1, m,j=0,1,n)的相對(duì)位置有關(guān)。,(5)幾何不變性 曲面,曲面,三、Bzier曲面示例,(1)雙一次(線性)Bzier曲面 當(dāng)m=n=1時(shí),得雙次(線性)B

30、zier曲面。給定(m+1)(n+1)=22=4個(gè)控制點(diǎn):,設(shè)V0,0,V0,1,V1,0,V1,1四點(diǎn)依次是(0,0,0),(1,0,0),(0,1,0),(0,0,1),則可得P1,1(u,w)的坐標(biāo)形式的參數(shù)方程為:,雙曲拋物面 (馬鞍面)方程,(2)雙二次Bzier曲面,當(dāng)m=n=2時(shí),得到雙二次Bzier曲面,給定(m+1)(n+1)=33=9個(gè)控制點(diǎn),即,(3)雙三次Bzier曲面,當(dāng)m=n=3時(shí),得到雙三次Bzier曲面,給定(m+1)(n+1)=44=16個(gè)控制點(diǎn),四、Bzier曲面的拼接,控制網(wǎng)格,(1) 連續(xù),于是有,(2) 連續(xù),最簡(jiǎn)單的解:,兩曲面片在該邊界上有公共的切

31、平面,兩邊關(guān)于w的多項(xiàng)式次數(shù)相同,或,五、Bzier曲面與Coons曲面的轉(zhuǎn)換 設(shè)同一個(gè)曲面片,用Coons曲面形式確定它,又用Bezier形式確定它,現(xiàn)在來考查、矩陣M與矩陣B有什么關(guān)系。,求解上式得:,四個(gè)角點(diǎn)00,0l,10和11分別對(duì)應(yīng)控制點(diǎn)V00,V03,V30和V33。切向量,例如00w=3(V01-V00),表明00w,是沿從V00到V01邊的方向,大小是兩個(gè)位置向量差的3倍,其余切向量是類似的。,V10,V00沿w方向的切向量之差的三倍 V01,V00 沿u方向的切向量之差的三倍,扭曲向量只與中間四個(gè)控制點(diǎn)有關(guān)系,雙三次Coons曲面與Bezier曲面間的關(guān)系,第六節(jié) B樣條曲

32、線,一、B樣條曲線的定義 給定n+1個(gè)控制點(diǎn)P0,P1,Pn,它們所確定的k階B樣條曲線是:,其中Ni,k(u)遞歸定義如下:,這里u0,u1,un+k,是一個(gè)非遞減的序列,稱為節(jié)點(diǎn),(u0,u1,un+k)稱為節(jié)點(diǎn)向量。定義中可能出現(xiàn) ,這時(shí)約定為0。B樣條曲線包含n-k+2段。,由k階B樣條曲線的遞歸定義可以看出: (1)對(duì)n+1個(gè)控制點(diǎn),曲線由n+1個(gè)混合函數(shù)所描述。 (2)每個(gè)混合函數(shù) 定義在u取值范圍的k個(gè)子區(qū)間,以節(jié)點(diǎn)向量值ui為起點(diǎn)。 (3)參數(shù)u的取值范圍由n+k+1個(gè)給定節(jié)點(diǎn)向量值分成n+k個(gè)子區(qū)間。 (4)節(jié)點(diǎn)值記(u0,u1,un+k)所生成的B樣條曲線僅定義在從節(jié)點(diǎn)值

33、到節(jié)點(diǎn)值 的區(qū)間上。 (5)任一控制點(diǎn)可以影響最多k個(gè)曲線段的形狀。 (6) 是分段參數(shù)多項(xiàng)式。 在每一區(qū)間 上都是次數(shù)不高于k-1的多項(xiàng)式。,從B樣條曲線的這個(gè)遞歸定義可以看出,曲線與給定的階數(shù)k及節(jié)點(diǎn)向量都有關(guān)系。就是說,即使k相同,選擇不同的節(jié)點(diǎn)向量,也能得到不同的曲線。 選取,n=2,k=1,控制頂點(diǎn)是P0,P1,P2,這樣應(yīng)選擇參數(shù)節(jié)點(diǎn)n+k+1=4個(gè),設(shè)節(jié)點(diǎn)向量是(u0,u1,u2,u3),按式定義,可寫出三個(gè)基函數(shù):,由公式可知所定義的B樣條曲線是,2階B樣條 由兩個(gè)1階B樣條 與 遞歸推得,是它們的凸線性組合,節(jié)點(diǎn)向量為(0,1,2)的2階B樣條基函數(shù)如圖,B樣條基函數(shù)有下列性

34、質(zhì): (1)正性和局部性,(2)規(guī)范性,(3)權(quán)性:,對(duì)從節(jié)點(diǎn)值 到 區(qū)間,上的任一值u,全體基函數(shù)之和為1,(4)遞推性:,二、B樣條曲線的性質(zhì),(1)連續(xù)性:,連續(xù)性(節(jié)點(diǎn)不重),(2)可微性:,在定義域內(nèi)重復(fù)度為p的節(jié)點(diǎn)處有k-1-p次可微,或具有 連續(xù)性,(3)凸包性:,(4)正性和局部支承性:,(5)幾何不變性: (6)近似性:,在參數(shù)節(jié)點(diǎn)的眾多選取方法中,最多使用的是選擇參數(shù)u的每一區(qū)間為等長(zhǎng)的情況,這時(shí)所得到的B樣條函數(shù)稱為是等距的,或均勻的。假定ui=i,i=0,1,n+k。,三、均勻B樣條曲線,(1)均勻B樣條,遞歸式,經(jīng)過計(jì)算,可以寫出:,如果固定在ui+3uui+4區(qū)間,

35、可以寫出:,對(duì)參數(shù)進(jìn)行如下變換tj=u-ui+j以簡(jiǎn)化上式,這仍可以使ui+juui+j+1與0tj1保持一致的。,上述結(jié)果對(duì)任意的0in-3成立,令i=0,可寫出四個(gè)B樣條函數(shù):,上述結(jié)果對(duì)任意的i成立,令i=0,同時(shí)對(duì)t3用u進(jìn)行名稱替換,可寫出四個(gè)4階3次B樣條基函數(shù):,設(shè)給出n+1個(gè)控制點(diǎn) P0,P1,Pn, 則所確定的4階3次等距B樣條曲線:,整條曲線是分段定義,第0段Q0(u)僅由頂點(diǎn)P0,P1,P2,P3確定,第1段Q1(u)由P1,P2,P3,P4確定,第n-3段由Pn-3,Pn-2,Pn-1,Pn確定。,按照同樣的方法,可以寫出2階1次和3階2次均勻B樣條曲線的表達(dá)式:,(2

36、)均勻B樣條曲線的拼接問題,Qi(0)是控制點(diǎn)Pi,Pi+1,Pi+2,Pi+3確定的段曲線的起點(diǎn)。將它的表達(dá)式改為,該點(diǎn)處的二階導(dǎo)數(shù)是Qi(0),改寫為,(3)特殊曲線的控制點(diǎn)配置,1對(duì)于4階3次均勻B樣條曲線P(u),若要在其中得到一條直線段,只要控制點(diǎn)Pi,Pi+1,Pi+2,Pi+3四點(diǎn)位于一條直線上,此時(shí)P(u)對(duì)應(yīng)的ui+3uui+4的曲線即為一段直線,且和Pi,Pi+1,Pi+2,Pi+3所在的直線重合。 2為了使P(u)能過Pi點(diǎn),只要Pi,Pi+1,Pi+2三點(diǎn)重合,此時(shí)P(u)過Pi點(diǎn)(尖點(diǎn))。 3為了使B樣條曲線P(u)和某一直線L相切,只要求B樣條曲線的控制點(diǎn)P i,P

37、 i+1,P i+2位于L上。,四、準(zhǔn)均勻B樣條曲線,給定n+1個(gè)控制點(diǎn)的k階B樣條,其參數(shù)值k和n通過下列計(jì)算可以生成準(zhǔn)均勻具有整型節(jié)點(diǎn)的向量,準(zhǔn)均勻B樣條多項(xiàng)式曲線通過第一和最后一個(gè)控制點(diǎn)。參數(shù)曲線在第一個(gè)控制點(diǎn)處的切向量平行于頭兩個(gè)控制點(diǎn)的連線;最后一個(gè)控制點(diǎn)處的切向量則平行于最后兩個(gè)控制點(diǎn)的連線。,選取n=3,k=2,于是有四個(gè)控制頂點(diǎn)P0,P1,P2,P3應(yīng)有參數(shù)節(jié)點(diǎn)n+k+1=6個(gè),設(shè)節(jié)點(diǎn)向量是(0,0,1,2,3,3),確定2階B樣條曲線。,取n=4(5個(gè)控制點(diǎn)),k=3,可得節(jié)點(diǎn)向量的8個(gè)值,事實(shí)上,當(dāng)k=n+1時(shí),由式得準(zhǔn)均勻節(jié)點(diǎn)向量為,該節(jié)點(diǎn)向量定義的k階k-1次B樣條基函數(shù)就是k-1次Bernstein基函數(shù),準(zhǔn)均勻B樣條曲線退化為Bzier樣條曲線,選取n=3,k=4,四個(gè)控制頂點(diǎn)為P0,P1,P2,P3,參數(shù)節(jié)點(diǎn)n+k+1=8個(gè),設(shè)選取節(jié)點(diǎn)向量為(0,0,0,0,1,1,1,1),五、B樣條曲線的繪制 (1)deBoor算法 曲線至多與k個(gè)頂點(diǎn) 有關(guān),由j替換j+1,只與第i-k+2至第i個(gè)節(jié)點(diǎn)有關(guān),void bspline_to_points(Point CP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論