版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2024/12/141計算機圖形學(xué)
曲線和曲面
第一節(jié)曲線和曲面表示的基礎(chǔ)知識第二節(jié)Hermite多項式第三節(jié)Bezier曲線第四節(jié)Bezier曲面第五節(jié)B樣條曲線第六節(jié)B樣條曲面第一節(jié)曲線和曲面表示的基礎(chǔ)知識
曲線和曲面參數(shù)表示
(1)與坐標軸相關(guān)的,不便于進行坐標變換;(2)會出現(xiàn)斜率為無窮大的情況;(3)難以靈活地構(gòu)造復(fù)雜的曲線、曲面(4)非參數(shù)的顯示方程只能描述平面曲線,空間曲線必須定義為兩張柱面的交線。(5)假如我們使用非參數(shù)化函數(shù),在某個xoy坐標系里一條曲線,一些x值對應(yīng)多個y值,而一些y值對應(yīng)多個x值。
在空間曲線的參數(shù)表示中,曲線上每一點的坐標均要表示成某個參數(shù)t的一個函數(shù)式,則曲線上每一點笛卡爾坐標參數(shù)式是:,,
把三個方程合寫到一起,曲線上一點坐標的矢量表示是:關(guān)于參數(shù)t的切矢量或?qū)Ш瘮?shù)是:曲面寫為參數(shù)方程形式為:曲線或曲面的某一部分,可以簡單地用a≤u,w≤b界定它的范圍直線段端點坐標分別是P1[x1,y1],P2[x2,y2],直線段的參數(shù)表達式是:P(t)=
P1+(
P2-
P1)t=(1-t)P1+tP2
0≤t≤1;參數(shù)表示相應(yīng)的x,y坐標分量是:x(t)=x1+(x2-x1)t
y(t)=y1+(y2-y1)t0≤t≤1參數(shù)方程具有如下優(yōu)點:有更大的自由度來控制曲線、曲面的形狀。便于坐標變換便于處理斜率為無限大的問題,不會因此中斷計算代數(shù)、幾何相關(guān)和無關(guān)的變量是完全分離的,而且對變量個數(shù)不限,便于向高維空間擴展。
t∈[0,1],直接定義了邊界。便于曲線和曲面的分段、分片描述。易于用矢量和矩陣表示,從而簡化了計算。曲線和曲面可以分為兩類。一類要求通過事先給定的離散的點,稱為是插值的曲線或曲面。另一類不要求通過事先給定的各離散點,而只是用給定各離散點形成的控制多邊形來控制形狀,稱為是逼近的曲線或曲面。
插值構(gòu)造一條曲線順序通過型值點,稱為對這些型值點進行插值(interpolation)。逼近構(gòu)造一條曲線,使它在某種意義上最接近這些型值點但不完全通過,稱之為對這些型值點進行逼近(approximation)。參數(shù)連續(xù)性一函數(shù)在某一點x0處具有相等的直到k階的左右導(dǎo)數(shù),稱它在x0處是k次連續(xù)可微的,或稱它在x0處是k階連續(xù)的,記作Ck。幾何上C0、C1、C2依次表示該函數(shù)的圖形、切線方向、曲率是連續(xù)的。參數(shù)曲線的可微性稱為參數(shù)曲線的連續(xù)性。幾何連續(xù)性
兩曲線段的相應(yīng)的弧長參數(shù)化在公共連接點處參數(shù)導(dǎo)數(shù)成比例而不是相等,則稱它們在該點處具有k階幾何連續(xù)性,記作Gk
。 零階幾何連續(xù)G0與零階參數(shù)連續(xù)C0是一致的。 一階幾何連續(xù)G1指一階導(dǎo)數(shù)在兩個相鄰曲線段的交點處成比例,即方向相同,大小不同。 二階幾何連續(xù)G2指兩個曲線段在交點處其一階和二階導(dǎo)數(shù)均成比例。曲線段間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點處的切矢量方向相同,大小相等,則Q1(t)和Q2(t)在P處有C1連續(xù)性(3)Q1(1)和Q2(0)在P處重合,且其在P點處的切矢量方向相同,大小不等,則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連續(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(t)在P處有C0和G0連續(xù)性(2)Q1(1)和Q2(0)在P處重合,且其在P點處的切矢量方向相同,大小相等,則Q1(t)和Q2(t)在P處有C1連續(xù)性(3)Q1(1)和Q2(0)在P處重合,且其在P點處的切矢量方向相同,大小不等,則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(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)是指曲線的拐點不能太多,要光滑順暢。對于平面曲線相對光順的條件應(yīng)該是:(1)具有二階幾何連續(xù)(G2);(2)不存在多余拐點和奇異點;(3)曲率變化較小。第二節(jié)Hermite多項式
已知函數(shù)f(t)在k+1個點{ti}處的函數(shù)值和導(dǎo)數(shù)值{f(j)(ti)},i=0,1,…,k,j=0,1,…,mi-1,要求確定一個N=m0+m1+…+mk-1次的多項式P(t),滿足下面的插值條件:一、Lagrange插值
已知f(t)在k+1個點上的函數(shù)值f(ti),求一個k次多項式使之滿足。
設(shè)表示一條曲線的某個函數(shù)f(t)在三點t0,t1,t2的函數(shù)值f(t0),f(t1),f(t2),根據(jù)Lagrange插值法,則二次多項式P(t)可表示為:g0(t)g2(t)g1(t)
設(shè)表示一條曲線的某個函數(shù)f(t)在四點t0,t1,t2,t3的函數(shù)值f(t0),f(t1),f(t2),f(t3),根據(jù)Lagrange插值法,則三次多項式P(t)可表示為:g0(t)g3(t)g1(t)g2(t)一般地,對于k+1個點,若曲線表達式中滿足是連續(xù)的●●則稱為混合(調(diào)和)函數(shù)或基稱為控制點。函數(shù),k+1個點二、三次Hermite曲線考察k=1,m0=m1=2的情形已知表示一條曲線的某個函數(shù)f(t)在兩點0,1的函數(shù)值f(0),f(1)和一階導(dǎo)數(shù)值f’(0),f’(1),求三次多項式P(t):把a0,a1,a2和a3代入(4-18)式則有:(4-18)得圖4-5規(guī)范化3次Hermite插值的四個調(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三次插值多項式Pi(t)是:為了完整地寫出這個插值多項式,可以在區(qū)間[ti,ti+1]中引入如下一些基本函數(shù):a0,0a1,0n=1為了完整地寫出這個插值多項式,可以在區(qū)間[ti,ti+1]中引入如下一些基本函數(shù):n=2a0,0a1,0a2,0完整的插值多項式可寫為:上式區(qū)間[t0,tn]中有定義,且為分段定義。在每個區(qū)間[ti,ti+1]上,都恰有四項。滿足插值條件每段曲線Pi(t)只在[ti,ti+1]中有定義:自變量的線性變換用逆變換代入,將所得關(guān)于u的多項式記為,得其中例:設(shè)在平面上有兩點P0,Pl,它們的位置向量分別為(1,1),(4,2),在P0的導(dǎo)數(shù)值即在該點的切線向量P’0=(1,1),在Pl處P’1=(1,-1),構(gòu)造曲線。
第三節(jié)Bezier曲線1.Bezier曲線定義
給出型值點P0,P1,…,Pn,它們所確定的n次Bezier曲線是:
是Bernstein多項式,混合函數(shù)涉及到的0!及00,按約定均為1。在n=1時,公式成為:(一次Bezier曲線是直線段)
在n=2時,公式成為:(二次Bezier曲線是拋物線)
在n=3時,公式成為:(三次Bezier曲線是三次參數(shù)多項式曲線)Bernstein基函數(shù)的性質(zhì)(1)正性(2)端點性質(zhì)(3)規(guī)范性 (4)對稱性 (5)權(quán)性 (6)遞推性
(7)導(dǎo)函數(shù)在處達到最大值。(8)最大值(7)導(dǎo)函數(shù)2、
Bezier曲線的性質(zhì)
P(0)=
P0,P(1)=P1,曲線通過所給出型值點列的起點和終點。
i=0i=n·二階導(dǎo)數(shù)
Bezier曲線的對稱性
·曲線的凸包性
對給定的型值點P0,P1,…,Pn點集,點集稱作n+1個點張成的凸包·幾何不變性3、Bezier曲線的拼接P0P1P2P3和Q0QlQ2Q3,兩個Bezier多邊形①曲線在連接點處C0連續(xù)的條件是P3=Q0②曲線在連接點處G1連續(xù),即一階導(dǎo)數(shù)幾何連續(xù),條件是Q’0=aP’3 ,a是一個正數(shù)。
P2,
P3=Q0,
Ql,共線且P2和Ql在P3兩側(cè)③連接點處達到C2連續(xù),即二階導(dǎo)數(shù)參數(shù)連續(xù)的條件,對前面的公式求兩次導(dǎo)數(shù),可得,于是知,要求,即,注意到Q0=P3,由此得:4、Bezier曲線繪制①利用定義式Bezier曲線的繪制,可以利用其定義式,對參數(shù)t選取足夠多的值,計算曲線上的一些點,然后用折線連接來近似畫出實際的曲線。隨著選取點增多,折線和曲線可以任意接近。假設(shè)給定的四個型值點是P0=(1,1),Pl=(2,3),P2=(4,3),P3=(3,1),則計算結(jié)果見表t(1-t)33t(1-t)23t2(1-t)t3P(t)01000(1,1)0.150.6140.3250.05740.0034(1.5058,1.765)0.350.2750.4440.2390.043(2.248,2.376)0.50.1250.3750.3750.125(2.75,2.5)0.650.0430.2390.4440.275(3.122,2.36)0.850.00340.05740.3250.614(3.248,1.75)10001(3,1)幾何作圖法
記點Pk,Pk+l,…,Pk+n可以生成的Bézier曲線為,0≤t≤1則成立下面的遞推關(guān)系:證明上式,要用到組合等式:
上式改寫為:
doubledecas(intn,doubleP[],doublet){ intm,i; double*R,*Q,P0; R=newdouble[n+1]; Q=newdouble[n+1]; for(i=0;i<=n;i++) R[i]=P[i];//將控制點坐標P保存于R中
//需要作n次外部循環(huán),方能產(chǎn)生最終Bezier曲線在點t的值
for(m=n;m>0;m--){//n次Bezier曲線在點t的值,可由兩條n-1次Bezier曲線//在點t的值通過線性組合而求得。
for(i=0;i<m;i++) Q[i]=R[i]+t*(R[i+1]-R[i]); for(i=0;i<m;i++) R[i]=Q[i]; } P0=R[0]; deleteR; deleteQ; return(P0);}
voidbez_to_points(intn,intnpoints,doubleP[],doublepoints[])//P為控制點坐標
//
points為采用幾何作圖算法生成的Bezier曲線上的離散點序列//離散點序列points的個數(shù)為npoints+1
//控制點P的個數(shù)為n+1
{ doublet,delt; delt=1.0/(double)npoints;//將參數(shù)tnpoints等分
t=0.0; for(inti=0;i<=npoints;i++) { //分別求出npoints+1個離散點points的坐標
points[i]=decas(n,P,t);
t+=delt; }}
設(shè)給出四點的坐標是(1,1),(2,3),(4,3),(3,1),求所確定三次Bezier曲線在t=1/3時的值P(1/3),算法的計算過程Bezier幾何作圖算法計算過程
分裂法思想:將原控制點集分為兩個點數(shù)相同的新控制點集,分別對應(yīng)原曲線的前半段和后半段,新控制點集比原控制點集更接近直線,分裂過程繼續(xù)進行,控制點集會迅速向曲線靠近,當滿足某個允許的界限時,可依次連接各點的折線來表示曲線分裂法設(shè)控制點序列P0,P1,…,Pn確定的n次Bezier曲線是P(t),用如下遞歸方式計算另一組點集:
如果令Pa(s)和Pb(s)分別是以控制點序列和確定的Bezier曲線,其中0≤s≤1,那么就有:己知四點P0,P1,P2,P3,確定了一條三次Bezier曲線P(t),可寫出下式,
分裂法中的遞歸計算分裂法的示意圖
驗證Bezier曲線分成前后兩段的正確性。以P0的系數(shù)為例,驗證兩端它的系數(shù)是相等的。左端顯然就是B0,3(t)=(1-t)3。再看右端。若0≤t≤,這時就用前半段的表達式,觀察分裂計算圖注意到中有1份P0,中有份,中是份,中是份。
右端對≤t≤1,注意到僅中有份的P0。1/21/41/81/21/23/81/21/4設(shè)己知三次Bezier曲線P(t)的控制頂點是P0,P1,P2,P3,在P()處將曲線分為兩段,求出前半段的控制頂點Q0,Ql,Q2,Q3和后半段的控制頂點R0,R1,R2,R3。有算法如下voidsplit_Bezier(PointP[]){ PointR[4],Q[4]; inti,j; for(i=0;i<=3;i++) R[i]=P[i];
for(i=0;i<=2;i++)
{ Q[i]=R[0]; for(j=0;j<=2-i;j++){ //分別對相鄰兩控制點間的線段進行分裂
R[j].x=(R[j].x+R[j+1].x)/2; R[j].y=(R[j].y+R[j+1].y)/2; } } Q[3]=R[0];}分裂算法的計算根據(jù)Bezier曲線的凸包性質(zhì),知道曲線上任意一點到線段P0P3的距離,小于P1和P2到線段P0P3距離中的較大者,即有:任意事先給定的對畫出曲線近似程度的要求ε>0,可以取max(d(P1,P0P3),d(P2,P0P3))<ε為分裂停止的條件。voidnew_split_Bezier(PointP[]){ PointR[4],Q[4]; inti,j; constdoubleepsilon=0.01; if(maxdistance(P)<epsilon){ /*maxdistance(P)為求max(d(P1,P0P3),d(P2,P0P3))的函數(shù)*/ MoveTo(P[0].x,P[0].y); LineTo(P[3].x,P[3].y); }else{ for(i=0;i<=3;i++)R[i]=P[i]; for(i=0;i<=2;i++){ Q[i]=R[0]; for(j=0;j<=2-i;j++){ R[j].x=(R[j].x+R[j+1].x)/2; R[j].y=(R[j].y+R[j+1].y)/2; } } Q[3]=R[0]; new_split_Bezier(Q);new_split_Bezier(R); }}doublemaxdistance(Pointp[]){ doubles1,s2,h1,h2; s1=((p[0].x-p[1].x)*(p[0].y+p[1].y)+ (p[1].x-p[3].x)*(p[1].y+p[3].y)+ (p[3].x-p[0].x)*(p[3].y+p[0].y)); s2=((p[0].x-p[2].x)*(p[0].y+p[2].y)+ (p[2].x-p[3].x)*(p[2].y+p[3].y)+ (p[3].x-p[0].x)*(p[3].y+p[0].y)); doubledistance=sqrt((p[0].x-p[3].x)*(p[0].x-p[3].x)+ (p[0].y-p[3].y)*(p[0].y-p[3].y)); h1=fabs(s1/distance); h2=fabs(s2/distance); returnmax(h1,h2);} 五、Bézier曲線的升階設(shè)給定原始控制頂點P0,P1,…,Pn,定義了一條n次Bézier曲線,增加一個頂點,曲線提升一階后,仍定義同一條曲線的新控制頂點為則有對上式左邊乘以得比較等式兩邊項的系數(shù),得兩邊除以,得式中1新的控制頂點是以參數(shù)值按分段線性插值從原始控制多邊形得出的。2升階后新的控制多邊形在原始控制多邊形的凸包內(nèi)。3控制多邊形更靠近曲線。此式說明:六、有理Bezier曲線
圖中h0=h1=h3=1,當h2=0、1/2、1、2、4時曲線逐漸地靠近P2點
圖中h0=h1=h3=1,當h2=0、1/2、1、2、4時曲線逐漸地靠近P2點
第四節(jié)Bezier曲面若在空間給定(m+1)(n+1)個控制點,Vij,i=0,1,…,m,j=0,1,…,n,令上式曲面為m×n次的Bezier曲面二、Bézier曲面的性質(zhì)(2)邊界線位置(1)端點位置是曲面的四個端點Bézier曲面的四條邊界線以、和,為控制多邊、形的Bézier曲線(3)端點的切平面,相切
、、、三角面在、、、處與曲面(4)凸包性
位于其控制頂點Vij,
(i=0,1,…,m,j=0,1,…,n)
的凸包內(nèi)。
的形狀和位置與坐標系選
擇無關(guān),僅和點Vij,(i=0,1,…,
m,j=0,1,…,n)的相對位置有關(guān)。(5)幾何不變性曲面曲面三、Bézier曲面示例(1)雙一次(線性)Bézier曲面當m=n=1時,得雙—次(線性)Bézier曲面。給定(m+1)×(n+1)=2×2=4個控制點:
設(shè)V0,0,V0,1,V1,0,V1,1四點依次是(0,0,0),(1,0,0),(0,1,0),(0,0,1),則可得P1,1(u,w)的坐標形式的參數(shù)方程為:雙曲拋物面(馬鞍面)方程
(2)雙二次Bézier曲面
當m=n=2時,得到雙二次Bézier曲面,給定(m+1)×(n+1)=3×3=9個控制點,即
(3)雙三次Bézier曲面當m=n=3時,得到雙三次Bézier曲面,給定(m+1)×(n+1)=4×4=16個控制點
四、Bézier曲面的拼接控制網(wǎng)格(1)連續(xù)于是有(2)連續(xù)最簡單的解: 兩曲面片在該邊界上有公共的切平面
兩邊關(guān)于w的多項式次數(shù)相同
或 第五節(jié)B樣條曲線一、B樣條曲線的定義給定n+1個控制點P0,P1,…,Pn,它們所確定的k階B樣條曲線是:其中Ni,k(u)遞歸定義如下:這里u0,u1,…,un+k,是一個非遞減的序列,稱為節(jié)點,(u0,u1,…,un+k)稱為節(jié)點向量。定義中可能出現(xiàn),這時約定為0。B樣條曲線包含n-k+2段。
由k階B樣條曲線的遞歸定義可以看出:(1)對n+1個控制點,曲線由n+1個混合函數(shù)所描述。(2)每個混合函數(shù)定義在u取值范圍的k個子區(qū)間,以節(jié)點向量值ui為起點。(3)參數(shù)u的取值范圍由n+k+1個給定節(jié)點向量值分成n+k個子區(qū)間。(4)節(jié)點向量(u0,u1,…,un+k)所生成的B樣條曲線僅定義在從節(jié)點值到節(jié)點值的區(qū)間上。(5)任一控制點可以影響最多k個曲線段的形狀。(6)是分段參數(shù)多項式。在每一區(qū)間上都是次數(shù)不高于k-1的多項式。從B樣條曲線的這個遞歸定義可以看出,曲線與給定的階數(shù)k及節(jié)點向量都有關(guān)系。就是說,即使k相同,選擇不同的節(jié)點向量,也能得到不同的曲線。選取,n=2,k=1,控制頂點是P0,P1,P2,這樣應(yīng)選擇參數(shù)節(jié)點n+k+1=4個,設(shè)節(jié)點向量是(u0,u1,u2,u3),按式定義,可寫出三個基函數(shù):由公式可知所定義的B樣條曲線是
2階B樣條由兩個1階B樣條與遞歸推得,是它們的凸線性組合節(jié)點向量為(0,1,2)的2階B樣條基函數(shù)如圖由兩個2階B樣條Ni,2與Ni+1,2遞推生成3階B樣條Ni,3Ni,2Ni+1,2Ni,3由兩個3階B樣條Ni,3與Ni+1,3遞推生成4階B樣條Ni,4Ni,3Ni+1,3Ni,4B樣條基函數(shù)有下列性質(zhì):(1)正性和局部性(2)規(guī)范性(3)權(quán)性:對從節(jié)點值到區(qū)間上的任一值u,全體基函數(shù)之和為1(4)遞推性:二、B樣條曲線的性質(zhì)(1)連續(xù)性:連續(xù)性(節(jié)點不重)(2)可微性:在定義域內(nèi)重復(fù)度為p的節(jié)點處有k-1-p次可微,或具有連續(xù)性(3)凸包性:(4)正性和局部支承性:(5)幾何不變性:(6)近似性:
在參數(shù)節(jié)點的眾多選取方法中,最多使用的是選擇參數(shù)u的每一區(qū)間為等長的情況,這時所得到的B樣條函數(shù)稱為是等距的,或均勻的。假定ui=i,i=0,1,…,n+k。
三、均勻B樣條曲線(1)均勻B樣條遞歸式,經(jīng)過計算,可以寫出:由兩個2階B樣條Ni,2與Ni+1,2遞推生成3階B樣條Ni,3Ni,2Ni+1,2Ni,3由兩個3階B樣條Ni,3與Ni+1,3遞推生成4階B樣條Ni,4Ni,3Ni+1,3Ni,4如果固定在ui+3≤u<ui+4區(qū)間,可以寫出:對參數(shù)進行如下變換tj=u-ui+j以簡化上式,這仍可以使ui+j≤u<ui+j+1與0≤tj<1保持一致的。上述結(jié)果對任意的0≤i≤n-3成立,令i=0,可寫出四個B樣條函數(shù):
上述結(jié)果對任意的i成立,令i=0,同時對t3用u進行名稱替換,可寫出四個4階3次B樣條基函數(shù):設(shè)給出n+1個控制點P0,P1,…,Pn,則所確定的4階3次等距B樣條曲線:整條曲線是分段定義第0段Q0(u)僅由頂點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樣條曲線的表達式:(2)均勻B樣條曲線的拼接問題(2)均勻B樣條曲線的拼接問題(2)均勻B樣條曲線的拼接問題Qi(0)是控制點Pi,Pi+1,Pi+2,Pi+3確定的一段曲線的起點。將它的表達式改為該點處的二階導(dǎo)數(shù)是Q''i(0),改寫為
(3)特殊曲線的控制點配置1.對于4階3次均勻B樣條曲線P(u),若要在其中得到一條直線段,只要控制點Pi,Pi+1,Pi+2,Pi+3四點位于一條直線上,此時P(u)對應(yīng)的ui+3≤u≤ui+4的曲線即為一段直線,且和Pi,Pi+1,Pi+2,Pi+3所在的直線重合。2.為了使P(u)能過Pi點,只要Pi,Pi+1,Pi+2三點重合,此時P(u)過Pi點(尖點)。3.為了使B樣條曲線P(u)和某一直線L相切,只要求B樣條曲線的控制點Pi,Pi+1,Pi+2位于L上。由k階B樣條曲線的遞歸定義可以看出:(1)對n+1個控制點,曲線由n+1個混合函數(shù)所描述(2)每個混合函數(shù)定義在u取值范圍的k個子區(qū)間,以節(jié)點向量值ui為起點。(3)參數(shù)u的取值范圍由n+k+1個給定節(jié)點向量值分成n+k個子區(qū)間。(4)節(jié)點向量(u0,u1,…,un+k)所生成的B樣條曲線僅定義在從節(jié)點值到節(jié)點值的區(qū)間上。(5)任一控制點可以影響最多k個曲線段的形狀。(6)是分段參數(shù)多項式。在每一區(qū)間上都是次數(shù)不高于k-1的多項式。四、準均勻B樣條曲線
給定n+1個控制點的k階B樣條,其參數(shù)值k和n通過下列計算可以生成準均勻具有整型節(jié)點的向量
準均勻B樣條多項式曲線通過第一和最后一個控制點。參數(shù)曲線在第一個控制點處的切向量平行于頭兩個控制點的連線;最后一個控制點處的切向量則平行于最后兩個控制點的連線。
選取n=3,k=2,于是有四個控制頂點P0,P1,P2,P3應(yīng)有參數(shù)節(jié)點n+k+1=6個,設(shè)節(jié)點向量是(0,0,1,2,3,3),確定2階B樣條曲線。
取n=4(5個控制點),k=3,可得節(jié)點向量的8個值事實上,當k=n+1時,由式得準均勻節(jié)點向量為
該節(jié)點向量定義的k階k-1次B樣條基函數(shù)就是k-1次Bernstein基函數(shù),準均勻B樣條曲線退化為Bézier樣條曲線選取n=3,k=4,四個控制頂點為P0,P1,P2,P3,參數(shù)節(jié)點n+k+1=8個,設(shè)選取節(jié)點向量為(0,0,0,0,1,1,1,1)
00001111000011110000111100001111uiui+1ui+2ui+3ui+4ui+5ui+6ui+7ui+8ui+9Ni,4Ni+1,4Ni+2,4Ni+3,4Ni+4,4Ni+5,4PiPi+1Pi+2Pi+3Pi+4Pi+5K=4,N=5在[ui+3,ui+4]節(jié)點區(qū)間內(nèi),只受Pi,Pi+1,Pi+2,Pi+3,4個控制點的影響,不受Pi+4,Pi+5的影響,因為其對應(yīng)的基函數(shù)Ni,4,Ni+1,Ni+2,Ni+3處于[ui+3,ui+4]節(jié)點區(qū)間內(nèi)。因此當改變Pi+4,Pi+5的位置,不會影響[ui+3,ui+4]節(jié)點區(qū)間內(nèi)的曲線形狀。以此可以說明B樣條曲線的局部支撐性。對此進行擴展,可以說明[ui,ui+1]節(jié)點區(qū)間內(nèi),只受Pj,j=i-k+1…I,k個控制點的影響,此處k=3五、B樣條曲線的繪制(1)deBoor算法曲線至多與k個頂點有關(guān)由j替換j+1只與第i-k+2至第i個節(jié)點有關(guān)只與第i-k+2至第i個節(jié)點有關(guān)21+-kiP2+-kiPiP]1[2+-kiP]1[3+-kiP]1[iP]2[3+-kiP]2[iP]3[4+-kiP]1[-kiP1+-kiP+-kiPiP]1[2+-kiP]1[3+-kiP]1[iP]2[3+-kiP]2[iP]3[4+-kiP]1[-kiP21+-kiP2+-kiPiP]1[2+-kiP]1[3+-kiP]1[iP]2[3+-kiP]2[iP]3[4+-kiP]1[-kiP1+-kiP+-kiPiP]1[2+-kiP]1[3+-kiP]1[iP]2[3+-kiP]2[iP]3[4+-kiP]1[-kiP21+-kiP2+-kiPiP]1[2+-kiP]1[3+-kiP]1[iP]2[3+-kiP]2[iP]3[4+-kiP]1[-kiP1+-kiP+-kiPiP]1[2+-kiP]1[3+-kiP]1[iP]2[3+-kiP]2[iP]3[4+-kiP]1[-kiPvoidbspline_to_points(PointCP[],intn,intk,doubleknot[],Pointpts[],intnpoints){ doubleu,delt; inti,j; //在每個節(jié)點區(qū)間,將參數(shù)t變化區(qū)間進行npoints等分
delt=(knot[n+1]-knot[k-1])/(double)npoints; i=k-1; u=knot[k-1];//u=knot[i]; for(j=0;j<=npoints;j++){ while((i<n)&&(u>knot[i+1]))i++;//確定參數(shù)u所在的節(jié)點區(qū)間[ui,ui+1) //在每個節(jié)點區(qū)間,分別求出npoints個離散點pts的坐標
pts[j]=deboor(CP,i,k,knot,u); u+=delt; }}//輸入?yún)?shù)CP為控制點坐標//控制點CP的個數(shù)為n+1//輸入?yún)?shù)k為B樣條曲線的階數(shù)//輸入?yún)?shù)knot為B樣條曲線節(jié)點向量//節(jié)點向量kn
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 考研《美術(shù)學(xué)(050403)》名??荚囌骖}試題庫(含答案)
- 2025年陜西職教高考《職業(yè)適應(yīng)性測試》考前沖刺模擬試題庫(附答案)
- 2025年河南工業(yè)和信息化職業(yè)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 專題07 浮力(講練)
- 幼兒園自理能力活動策劃方案五篇
- 鎳鐵購銷合同
- 幼兒園制作蛋糕活動策劃方案四篇
- 家具安裝合同范文
- 人工智能產(chǎn)業(yè)基金投資合同
- 農(nóng)場果品購銷合同模板范本
- 2024年公安機關(guān)理論考試題庫附答案【考試直接用】
- 課題申報參考:共同富裕進程中基本生活保障的內(nèi)涵及標準研究
- 2025中國聯(lián)通北京市分公司春季校園招聘高頻重點提升(共500題)附帶答案詳解
- 康復(fù)醫(yī)學(xué)科患者隱私保護制度
- 環(huán)保工程信息化施工方案
- 紅色中國風(fēng)2025蛇年介紹
- 《內(nèi)臟疾病康復(fù)》課件
- 家具廠各崗位責(zé)任制匯編
- 提高檢驗標本合格率品管圈PDCA成果匯報
- 世界古代史-對接選擇性必修(真題再現(xiàn)) 高考歷史一輪復(fù)習(xí)
- 植物的類群及演化
評論
0/150
提交評論