計(jì)算機(jī)輔助設(shè)計(jì)教程-曲線與曲面基礎(chǔ)知識(shí)_第1頁(yè)
計(jì)算機(jī)輔助設(shè)計(jì)教程-曲線與曲面基礎(chǔ)知識(shí)_第2頁(yè)
計(jì)算機(jī)輔助設(shè)計(jì)教程-曲線與曲面基礎(chǔ)知識(shí)_第3頁(yè)
計(jì)算機(jī)輔助設(shè)計(jì)教程-曲線與曲面基礎(chǔ)知識(shí)_第4頁(yè)
計(jì)算機(jī)輔助設(shè)計(jì)教程-曲線與曲面基礎(chǔ)知識(shí)_第5頁(yè)
已閱讀5頁(yè),還剩95頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

王朔Email:shwang@2018.9計(jì)算機(jī)機(jī)輔助助建筑筑設(shè)計(jì)計(jì)第二講講:曲曲線及及曲面面基礎(chǔ)礎(chǔ)計(jì)算機(jī)機(jī)輔助助設(shè)計(jì)計(jì)課程程簡(jiǎn)介介計(jì)算機(jī)機(jī)圖形形學(xué)的的相關(guān)關(guān)知識(shí)識(shí)圖形繪繪制、、圖形形變換換、曲曲線/曲面、、圖形形渲染染……Rhino軟件及及Grasshopper參數(shù)化化設(shè)計(jì)計(jì)BIM及軟件件應(yīng)用用(Revit)課程主主要內(nèi)內(nèi)容::計(jì)算機(jī)機(jī)圖形形學(xué)部部分簡(jiǎn)簡(jiǎn)介::計(jì)算機(jī)機(jī)圖形形學(xué)的的研究究?jī)?nèi)容容龐雜雜而繁繁多,,凡是是與計(jì)計(jì)算機(jī)機(jī)繪圖圖相關(guān)關(guān)的內(nèi)內(nèi)容都都是圖圖形學(xué)學(xué)研究究的對(duì)對(duì)象。。本講義義選取取有助助于建建筑專專業(yè)同同學(xué)理理解及及掌握握計(jì)算算機(jī)輔輔助設(shè)設(shè)計(jì)相相關(guān)概概念和和應(yīng)用用的知知識(shí)加加以介介紹。。為什么么講述述計(jì)算算機(jī)圖圖形學(xué)學(xué)知識(shí)識(shí):類比::模型-視圖-控制器器(MVC模式))計(jì)算機(jī)機(jī)圖形形學(xué)=表示+繪制+交互基本的的計(jì)算算機(jī)繪繪圖知知識(shí)::1、各類類繪圖圖軟件件:AutoCAD,SketchUP,Rhino,3DSMax,Photoshops等。2、專用用的繪繪圖語(yǔ)語(yǔ)言及及開發(fā)發(fā)包::OpenGL、DirectX3D等。3、基于于PARASOLID、Acis幾何引引擎的的商商業(yè)CAD軟件。。3、各類類開發(fā)發(fā)語(yǔ)言言提供供的簡(jiǎn)簡(jiǎn)單繪繪圖功功能。。位圖(光柵圖圖像)圖形(矢量圖圖)基礎(chǔ)知知識(shí)::位圖(光柵圖圖像)光柵圖圖像(Image)與圖形形(Graphics,Shape,矢量圖圖)對(duì)一個(gè)個(gè)視域域中的的光強(qiáng)強(qiáng)變化化以有有限的的精度度進(jìn)行行抽樣樣,會(huì)會(huì)產(chǎn)生生連續(xù)續(xù)強(qiáng)度度表面面的一一種近近似。。在計(jì)計(jì)算機(jī)機(jī)存儲(chǔ)儲(chǔ)器中中可以以用整整數(shù)的的陣列列表示示,其其中每每一個(gè)個(gè)整數(shù)數(shù)表示示一個(gè)個(gè)亮度度。用用這種種方法法編碼碼和存存儲(chǔ)的的圖像像稱為為位映映射圖圖像((bitmappedimage)。圖片來(lái)來(lái)源:《數(shù)字設(shè)設(shè)計(jì)媒媒體》WilliamJ.Mitchell著王王國(guó)泉泉霍霍新民民譯清清華華大學(xué)學(xué)出版版社CBitmapb;CDCd;b.LoadBitmap(IDB_BITMAP1);d.CreateCompatibleDC(pDC);d.SelectObject(&b);pDC->BitBlt(0,0,768,432,&d,1,1,SRCCOPY);unsignedk;for(inti=1;i<100;i=i+5)for(intj=1;j<100;j=j+5){k=pDC->GetPixel(i,j);chars[32];sprintf_s(s,"%d",k);pDC->TextOutW(i*15,j*5+500,CString(s));}1_3_BMP圖形(Graphics,Shape)矢量圖圖圖像可可能會(huì)會(huì)被看看成是是不同同光強(qiáng)強(qiáng)和色色彩的的點(diǎn)的的集合合,而而對(duì)于于設(shè)計(jì)計(jì)師而而言,,他們們一般般會(huì)創(chuàng)創(chuàng)建高高度結(jié)結(jié)構(gòu)化化形式式的圖圖,并并把他他們看看成是是諸如如直線線,圓圓弧、、封閉閉多邊邊形這這樣一一些幾幾何實(shí)實(shí)體的的集合合。在在工程程制圖圖中,,會(huì)使使用直直尺和和圓規(guī)規(guī)一類類的繪繪圖工工具精精確的的畫出出幾何何實(shí)體體,并并通過過幾何何制圖圖的方方法精精確的的確定定他們們的關(guān)關(guān)系。。同樣樣,計(jì)計(jì)算機(jī)機(jī)圖形形軟件件提供供了特特定的的精確確處理理和準(zhǔn)準(zhǔn)確表表示幾幾何實(shí)實(shí)體的的工具具。圖片來(lái)源源:《數(shù)字設(shè)計(jì)計(jì)媒體》WilliamJ.Mitchell著王國(guó)國(guó)泉霍霍新民譯譯清華華大學(xué)出出版社使用CDC類函數(shù)繪繪制基本本的圖形形(不使用用任何軟軟件工具具,直接接寫一個(gè)個(gè)運(yùn)行程程序)1、繪制一一個(gè)簡(jiǎn)單單的矩形形DrawRectangleDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);if(!pDoc)Return;CPenmyPen;myPen.CreatePen(PS_SOLID,10,RGB(255,40,0));pDC->SelectObject(myPen);intw=500;inth=300;pDC->MoveTo(50,50);pDC->LineTo(50+w,50);pDC->LineTo(50+w,50+h);pDC->LineTo(50,50+h);pDC->LineTo(50,50);1-1DrawRectangle//TODO:adddrawcodefornativedatahereCPenmyPen;myPen.CreatePen(PS_SOLID,10,RGB(255,40,0));pDC->SelectObject(myPen);pDC->Ellipse(30,20,500,300);voidCMy1_2_MouseLineView::OnLButtonDown(UINTnFlags,CPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultm_StartPoint=point;CView::OnLButtonDown(nFlags,point);}voidCMy1_2_MouseLineView::OnLButtonUp(UINTnFlags,CPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultCPenmyPen;myPen.CreatePen(PS_SOLID,5,RGB(255,40,0));CClientDCdc(this);dc.SelectObject(myPen);dc.MoveTo(m_StartPoint);dc.LineTo(point);CView::OnLButtonUp(nFlags,point);}for(inti=0;i<628*2;i++){inty=100*sin(float(i)/100);pDC->SetPixel(i,y+120,0);//pDC->Ellipse(i-r,y-r+120,i+r,y+r+120);Sleep(10);}voidDrawCurve(doublep[3],CDC*pDC,intp_x,intp_y){doubler=150.0,h=3;doublex[628],y[628],z[628],xe[628],ye[628],ze[628],xs[628],ys[628],zs=200,a,b,c,u,v;intm=0;a=p[0];b=p[1];c=p[2];u=sqrt(a*a+b*b+c*c);v=sqrt(a*a+b*b);for(doublet=0;t<62.8;t=t+0.1){x[m]=r*cos(t);y[m]=r*sin(t);z[m]=h*t;m++;}xe[0]=-b/v*x[0]+a/v*y[0];ye[0]=-a*c/(u*v)*x[0]-b*c/(u*v)*y[0]+v/u*z[0];ze[0]=-a/u*x[0]-b/u*y[0]-c/u*z[0]+u;xs[0]=xe[0]*zs/ze[0]+p_x;ys[0]=ye[0]*zs/ze[0]+p_y;pDC->MoveTo(xs[0],ys[0]);//pDC->Ellipse(xs[0],ys[0],xs[0]+100,xs[0]+100);for(inti=1;i<628;i++){xe[i]=-b/v*x[i]+a/v*y[i];ye[i]=-a*c/(u*v)*x[i]-b*c/(u*v)*y[i]+v/u*z[i];ze[i]=-a/u*x[i]-b/u*y[i]-c/u*z[i]+u;xs[i]=xe[i]*zs/ze[i]+p_x;ys[i]=ye[i]*zs/ze[i]+p_y;pDC->LineTo(int(xs[i]),int(ys[i]));}}在工業(yè)設(shè)設(shè)計(jì)中遇遇到的形形狀,一一般可以以分為兩兩類:(1)定形形形狀(第第一類形形狀),,通常有平平面、二二次曲面面或其他他規(guī)則曲曲面所構(gòu)構(gòu)成。(2)自由形形狀(第第二類形形狀),,一般來(lái)說說,包含含了自由由曲線和和自由曲曲面,設(shè)設(shè)計(jì)時(shí)通通常由給給定的一一系列型型值點(diǎn)來(lái)來(lái)定義期期形狀,,某些復(fù)復(fù)雜的零零件及汽汽車、飛飛機(jī)的外外形曲面面均屬于于這類形形狀。一般來(lái)說說用常規(guī)規(guī)的三視視圖的方方法,對(duì)對(duì)第一類類形狀是是適合的的,但是是將三維維形狀在在二維平平面上描描述進(jìn)行行形狀信信息的傳傳遞,即即使采用用多面視視圖及其其它的表表達(dá)方法法,對(duì)某某些形狀狀來(lái)說,,也仍然然是難于于做好的的。第二類形形狀所包包含的信信息更多多,用傳傳統(tǒng)的工工程圖學(xué)學(xué)的方法法有一定定的困難難,在CAGD中則是用用數(shù)學(xué)方方法來(lái)定定義、描描述及傳傳遞形狀狀信息[Hu1987]。[Hu1987]胡瑞安主主編.計(jì)算機(jī)輔輔助幾何何設(shè)計(jì)[M].華中工學(xué)學(xué)院出版版社.1987PrototypeofthedesigntheClay&SculptureStudioDesign入口及玻玻璃幕墻墻調(diào)整方方案2入口及玻玻璃幕墻墻調(diào)整方方案2入口細(xì)布布(方案案2)入口室內(nèi)內(nèi)效果MuseumofContemporaryArt&PlanningExhibitionArchitecturebyCoopHimmelb(l)au生成式設(shè)設(shè)計(jì)(generativecomponents)來(lái)源:Pedit_Spline.dwg內(nèi)插曲線線擬合曲線線?Mathematicalrepresentationofphysicalsplines?C2continuous?Interpolateallcontrolpoints?HaveGlobalcontrol(nolocalcontrol)NaturalSplines樣條函數(shù)數(shù)是美國(guó)國(guó)數(shù)學(xué)家家I.J.Shoenberg于1946年提出的的,但當(dāng)當(dāng)時(shí)并未未引起人人們的重重視。直直到60年代,人人們才開開始認(rèn)識(shí)識(shí)到樣條條函數(shù)在在數(shù)據(jù)擬擬合、函函數(shù)逼近近、數(shù)值值微分與與積分等等重要作作用,并并廣泛的的用于汽汽車、航航空、造造船等行行業(yè)的幾幾何外形形設(shè)計(jì)[]。最初,樣樣條曲線線都是借借助于物物理樣條條得到的的,放樣樣員把富富有彈性性的細(xì)木木條(或有機(jī)玻玻璃條),用壓鐵鐵固定在在曲線應(yīng)應(yīng)該通過過的給定定型值點(diǎn)點(diǎn)處,樣樣條做自自然彎曲曲所繪制制出來(lái)的的曲線就就是樣條條曲線。。樣條曲曲線不僅僅通過各各有序型型值點(diǎn),,并且在在各型值值點(diǎn)處的的一階和和二階導(dǎo)導(dǎo)數(shù)連續(xù)續(xù),也即即該曲線線具有連連續(xù)的、、曲率變變化均勻勻的特點(diǎn)點(diǎn)。Splines?Popularizedinlate1960sinUSAutoindustry(GM)–R.Riesenfeld(1972)–W.Gordon?Origin:thethinwoodormetalstripsusedinbuilding/shipconstruction?Goal:defineacurveasasetofpiecewisesimplepolynomialfunctionsconnectedtogetherSplines樣條PierreBezierforhisfundamentalcontributionRobinForrestforhisinsightBillGordonforhismathematicalcontributionsCarldeBoorandMauriceCoxfortheCox-deBooralgorithmSteveCoonsforhismathematicalgeniusRichRiesenfeldforB-splinesElaineCohen,TomLycheandRichRiesenfeldfortheOsloAlgorithmsLewieKnappforrationalB-splinesKenVersprieforNURBSDr.PierreB′′ezier.B′′ezierwasanengineerwiththeRenaultcarcompanyandsetoutintheearly1960’’stodevelopacurveformulationwhichwouldlenditselftoshapedesign.貝塞爾曲曲線于1962年,由法法國(guó)工程程師皮埃埃爾·貝塞爾((PierreBézier)所廣泛泛發(fā)表,,他運(yùn)用用貝塞爾爾曲線來(lái)來(lái)為汽車車的主體體進(jìn)行設(shè)設(shè)計(jì)。貝貝塞爾曲曲線最初初由PauldeCasteljau(保爾·德·卡斯特里里奧)于1959年運(yùn)用deCasteljau算法開發(fā)發(fā),以穩(wěn)穩(wěn)定數(shù)值值的方法法求出貝貝塞爾曲曲線。Bezier曲線和曲曲面Bezier曲線定義給出型值值點(diǎn)P0,P1,…,Pn,它們所所確定的的n次Bezier曲線是::涉及到的的0!及00,按約定定均為1。當(dāng)n=1時(shí)是Bernstein多項(xiàng)式,,調(diào)和函數(shù)數(shù)在n=2時(shí)在n=3時(shí)①②③④Bezier曲線幾何何作圖方方法兩個(gè)控制制點(diǎn)(LinearBezierSpline)只有兩個(gè)個(gè)控制點(diǎn)點(diǎn)P、Q的Bezier曲線是什什么樣子子的?不不難想像像是線段段PQ,如下圖圖:所以由控控制點(diǎn)P、Q產(chǎn)生的Bezier曲線的方方程是::C(u)=(1-u)P+uQ0<=u<=1曲線上參參數(shù)為u的點(diǎn)是通通過P和Q的線性組組合得到到的。Bezier二次曲線線(QuadraticBezierSpline)如果想得得到一條條彎曲的的曲線,,兩個(gè)控控制點(diǎn)是是不夠的的,加上上一個(gè)控控制點(diǎn)R,那么由由控制點(diǎn)點(diǎn)P、Q和R生成的Bezier曲線又是是什么樣樣子的了了?假設(shè)生成成的曲線線為C(u),其中0<=u<=1,對(duì)應(yīng)于于某個(gè)特特定的u,C(u)如何計(jì)算算出來(lái)了了?我們先在在PQ上求一點(diǎn)點(diǎn)A(u)A(u)=(1-u)P+uQ在QR上求一點(diǎn)點(diǎn)B(u)B(u)=(1-u)Q+uR再在生成成的線段段上求C(u)C(u)=(1-u)A(u)+uB(u)對(duì)應(yīng)于下下圖,用用這種迭迭代的方方法求出出的點(diǎn)C(u)就是Bezier曲線上參參數(shù)為u的點(diǎn)!將A(u)和B(u)的公式代代入C(u)得到:C(u)=(1-u)A(u)+uB(u)=(1-u)[(1-u)P+uQ]+u[(1-u)Q+uR]=(1-u)^2P+2u(1-u)Q+u^2R(0<=u<=1)上面的公公式給出出了從三三個(gè)控制制點(diǎn)P、Q和R,求取參參數(shù)u對(duì)于的曲曲線上點(diǎn)點(diǎn)的方法法,如果果u=0,則C(0)=P;如果u=1,則C(1)=R,說明曲曲線通過過P和R,與上圖圖的觀察察是一致致的;如果有四四個(gè)控制制點(diǎn)P、Q、R和S,給定一一個(gè)參數(shù)數(shù)值u,0<=u<=1,如何求求u對(duì)應(yīng)的Bezier曲線上的的點(diǎn)?還還是用上上述迭代代的方法法,最后后得到的的方程是是:C(u)=(1-u)^3P+3u(1-u)^2Q+3u^2(1-u)R+u^3S繪制出來(lái)來(lái)的曲線線如下圖圖所示::Bezier曲線(CubicBezierSpline)deCasteljau算法描述述Bezier曲面若在空間間給定(m+1)(n十1)個(gè)控制點(diǎn)點(diǎn),Vij,i=0,1,…,m,j=0,1,…,n,令上式曲面為為m×n次的Bezier曲面當(dāng)m=n=1,公式成為為:設(shè)v00,v01,v10,v11四點(diǎn)依次是是(0,0,0),(1,0,0),(0,1,0),(0,0,1),則可得得P1,1(u,w)的坐標(biāo)形形式的參參數(shù)方程程為:消去參數(shù)數(shù),就得得馬鞍面方程:當(dāng)m=n=3,曲面成成為:Bezier曲線的次次數(shù)(degree)是有控控制點(diǎn)的的個(gè)數(shù)決決定的((n+1個(gè)控制點(diǎn)點(diǎn)),如如果增加加曲線的的變化就就需要在在這個(gè)曲曲線的附附近增加加控制點(diǎn)點(diǎn),這會(huì)會(huì)增加曲曲線的次次數(shù)。也可以把把不同的的Bezier曲線連接接起來(lái),,只要第第一條曲曲線的尾尾端與第第二條曲曲線的首首端連接接起來(lái)并并具有相相同的切切線方向向,至少少可以獲獲得G1的連續(xù)性性。B-Spline需要一系系列的控控制點(diǎn),,一系列列的節(jié)點(diǎn)點(diǎn)和一系系列的系系數(shù),每每個(gè)系數(shù)數(shù)對(duì)應(yīng)一一個(gè)控制制點(diǎn),從從而構(gòu)造造一系列列的曲線線段連接接在一起起,滿足足某個(gè)連連續(xù)條件件。Hermite曲線Hermite曲線Hermite曲線為給給定兩端端點(diǎn)及兩兩端點(diǎn)切切向量所所得的三三次曲線線。已知曲線線的兩個(gè)個(gè)端點(diǎn)坐坐標(biāo)P0、P1,和端點(diǎn)點(diǎn)處的切切線R0、R1,確定的的一條曲曲線。令:則:給定邊界界條件::結(jié)論:只只要給定定Gh,就可以以在[0,1]范圍內(nèi)求求出Q(t),即可繪繪制出Hermite曲線,對(duì)對(duì)于不同同的初始始條件,,Gh是不同的的,而T、Mh均是相同同的。Hermite.gh曲線與曲曲面基礎(chǔ)礎(chǔ)知識(shí)\B_Spline_Grasshopper\Bezier01_3P.gh曲線與曲曲面基礎(chǔ)礎(chǔ)知識(shí)\B_Spline_Grasshopper\Bezier01_4P.ghB樣條曲線線B樣條曲線線(構(gòu)造造具有局局部性的的調(diào)和函函數(shù))給定n+1個(gè)控制點(diǎn)點(diǎn)P0,P1,…,Pn,它們所所確定的的p階B樣條曲線線是:其中Ni,p(u)遞歸定義義如下::這里u0,u1,…,un+p,是一個(gè)個(gè)非遞減的序列,,稱為節(jié)節(jié)點(diǎn),(u0,u1,…,un+p)稱為節(jié)點(diǎn)向量量。定義中中可能出出現(xiàn),,這這時(shí)約定定為0。貝塞爾基基函數(shù)用用作權(quán)重重。B-樣條基函函數(shù)也一一樣,但但更復(fù)雜雜。但是是它有兩兩條貝塞塞爾基函函數(shù)所沒沒有的特特性,即即(1)定義域被被節(jié)點(diǎn)細(xì)細(xì)分(subdivided);(2)基函數(shù)不不是在整整個(gè)區(qū)間間非零。。實(shí)際上上,每個(gè)個(gè)B樣條基函函數(shù)在附附近一個(gè)個(gè)子區(qū)間間非零,,因此,,B-樣條基函函數(shù)具有有局部支撐撐性。1)設(shè)U是m+1個(gè)非遞遞減數(shù)的的集合,,u0<=u1<=u2<=u3<=…<=um,u0稱為節(jié)點(diǎn)點(diǎn)(knots),集合合U稱為節(jié)點(diǎn)點(diǎn)向量((Knotsvector),半開開區(qū)間[ui,ui+1)稱為第i個(gè)節(jié)點(diǎn)區(qū)區(qū)間。2)節(jié)點(diǎn)可可以被認(rèn)認(rèn)為是分分隔點(diǎn),,區(qū)間[u0,um]被細(xì)分為為節(jié)點(diǎn)區(qū)區(qū)間,所所有的B樣條基函函數(shù)被定定義在[u0,um]上。3)為了定定義B-Spline基函數(shù),,還需要要一個(gè)參參數(shù),基基函數(shù)的的次數(shù)((degree),第i個(gè)P次的B-Spline基函數(shù)記記為Ni,p(u)。Cox-deBoor遞歸公式式Cox-deBoor遞歸公式式U={0,1,2,3}1)0次基函數(shù)數(shù)是N0,0(u)=1在[0,1),在其它它區(qū)間是是0;N1,0(u)=1在[1,2)上,在其其它區(qū)間間是0;N2,0(u)=1在[2,3)上,其它它區(qū)間是是0。為了計(jì)算算Ni,1(u),需要Ni,0(u)和Ni+1,0(u)。因此,,我們可可以計(jì)算算N0,1(u),N1,1(u),N2,1(u),N3,1(u)等等。所所有這些些Ni,1(u)寫在第三三列。一一旦所有有Ni,1(u)計(jì)算完畢畢,我們們可以計(jì)計(jì)算Ni,2(u)并將其放放在第四四列。繼繼續(xù)這個(gè)個(gè)過程直直到所有有需要的的Ni,p(u)的計(jì)算完完畢。例:現(xiàn)在計(jì)算算N0,1(u)和N1,1(u)。要計(jì)算算N0,1(u),因?yàn)閕=0和p=1,從定義義出發(fā)有有因?yàn)閡0=0,u1=1和u2=2,上式變?yōu)闉橐驗(yàn)镹0,0(u)在[0,1)上非零且且N1,0(u)在[1,2)上非零,,如果u在[0,1),只有N0,0(u)對(duì)N0,1(u)有貢獻(xiàn)。。因此,,如果u在[0,1)上,N0,1(u)是u,N0,0(u)=u。而如果果u在[1,2)上,N0,1(u)是(2-u),N1,0(u)=(2-u)。相似的的計(jì)算得得到N1,1(u)=(u–1)N1,0(u)+(3-u)N2,0(u),如果u在[1,2)上,而N1,1(u)=u-1,如如果u在[2,3)上,N1,1(u)=3––u。下圖圖中,,黑色色和紅紅色線線分別別是N0,1(u)和N1,1(u)。注意意N0,1(u)在[0,1)和[1,2)上是非非零的的,N1,1(u)在[1,2)和[2,3)上是非非零的的。一旦獲獲得N0,1(u)和N1,1(u),可以以計(jì)算算N0,2(u)。由定定義得得到下下式:代入節(jié)節(jié)點(diǎn)值值得到到注意N0,1(u)在[0,1)和[1,2)上非零零而N1,1(u)在[1,2)和[2,3)上非零零。因因此,,我們們有三三種情情況要要考慮慮:1.u在[0,1)上:2.u在[1,2)上3.u在[2,3)上2.u在[1,2)上:這種情情況,,N0,1(u)和N1,1(u)都對(duì)N0,2(u)有貢獻(xiàn)獻(xiàn)。因因此N0,1(u)=2-u且N1,1(u)=u-1在[1,2)上,得到1.u在[0,1)上:這種情情況,,只有有N0,1(u)對(duì)N0,2(u)的值有有貢獻(xiàn)獻(xiàn)。因因此,,N0,1(u)是u,得到3.u在[2,3)上:這種情情況,,只有有N1,1(u)對(duì)N0,2(u)有貢獻(xiàn)獻(xiàn)。因因此N1,1(u)=3-u在[2,3)上,得得到,曲線與與曲面面基礎(chǔ)礎(chǔ)知識(shí)識(shí)\B_Spline_Grasshopper\B_Spline01.ghfor(intj=0;j<N;j++){if(_u>=ui&_u<=ui1){_result=1;}else{_result=0;}resultList.Add(_result);_u=_u+step;}A=resultList;for(intj=0;j<N;j++){_result=(_u-ui)/(ui2-ui)*_N01[j]+(ui3-_u)/(ui3-ui1)*_N11[j];resultList.Add(_result);_u=_u+step;}A=resultList;帶重復(fù)復(fù)度的的節(jié)點(diǎn)點(diǎn)如果ui是重復(fù)復(fù)度k的節(jié)點(diǎn)點(diǎn)(即ui=ui+1=...=ui+k-1),那么節(jié)節(jié)點(diǎn)區(qū)區(qū)間[ui,ui+1),[ui+1,ui+2),...,[ui+k-2,ui+k-1)不存在在,結(jié)結(jié)果是是,Ni,0(u),Ni+1,0(u),...,Ni+k-1,0(u)都是零零函數(shù)數(shù)。u0

u1

u2

u3

u4

u5

u6

u7

u8

u9

0000.30.50.50.6111計(jì)算Ni,0(u)。注注意因因?yàn)閙=9且p=0(0次基函函數(shù)),我們有有n=m-p-1=8。如下下表所所示,,只有有四個(gè)個(gè)0次非零零基函函數(shù)::N2,0(u),N3,0(u),N5,0(u)和N6,0(u).

基函數(shù)

范圍

方程

備注

N0,0(u)所有

u

0因?yàn)?/p>

[u0,u1)=[0,0)不存在N1,0(u)所有

u

0因?yàn)?/p>

[u1,u2)=[0,0)不存在N2,0(u)[0,0.3)1

N3,0(u)[0.3,0.5)1

N4,0(u)所有

u

0因?yàn)?/p>

[u4,u5)=[0.5,0.5)不存在N5,0(u)[0.5,0.6)1

N6,0(u)[0.6,1)1

N7,0(u)所有

u

0因?yàn)?/p>

[u7,u8)=[1,1)不存在N8,0(u)所有

u

0因?yàn)?/p>

[u8,u9)=[1,1)不存在繼續(xù)計(jì)計(jì)算1次基函函數(shù)。。因?yàn)闉閜為1,n=m-p-1=7.下表顯顯示了了結(jié)果果:基

數(shù)

N0,1(u)所有

u

0N1,1(u)[0,0.3)1-(10/3)u

N2,1(u)[0,0.3)(10/3)u

[0.3,0.5)2.5(1-2u)N3,1(u)[0.3,0.5)5u-1.5N4,1(u)[0.5,0.6)6-10u

N5,1(u)[0.5,0.6)10u-5[0.6,1)2.5(1-u)N6,1(u)[0.6,1)2.5u-1.5N7,1(u)所有

u

0計(jì)算所所有的的Ni,2(u)。因?yàn)闉閜=2,我們有有n=m-p-1=6。下表表包含含了所所有的的Ni,2(u):

數(shù)

N0,2(u)[0,0.3)(1-(10/3)u)2N1,2(u)[0,0.3)(20/3)(u-(8/3)u2)[0.3,0.5)2.5(1-2u)2

N2,2(u)[0,0.3)(20/3)u2

[0.3,0.5)-3.75+25u-35u2

N3,2(u)[0.3,0.5)(5u-1.5)2

[0.5,0.6)(6-10u)2

N4,2(u)[0.5,0.6)20(-2+7u-6u2)[0.6,1)5(1-u)2

N5,2(u)[0.5,0.6)12.5(2u-1)2

[0.6,1)2.5(-4+11.5u-7.5u2)N6,2(u)[0.6,1)2.5(9-30u+25u2)在節(jié)點(diǎn)點(diǎn)0.5(2)處,因因?yàn)樗闹刂貜?fù)度度是2且這些些基函函數(shù)的的次數(shù)數(shù)是2,基函數(shù)數(shù)N3,2(u)在0.5(2)處是C0連續(xù)的的。這這就是是為什什么N3,2(u)在0.5(2)處有個(gè)個(gè)尖銳銳的角角。對(duì)對(duì)不在在兩個(gè)個(gè)端點(diǎn)點(diǎn)處的的節(jié)點(diǎn)點(diǎn),例例如0.3,保持了了C1連續(xù)性性因?yàn)闉樗鼈儌兌际鞘呛?jiǎn)單單節(jié)點(diǎn)點(diǎn)。曲線與與曲面面基礎(chǔ)礎(chǔ)知識(shí)識(shí)\B_Spline_Grasshopper\b-Spline_BaseFunction02.gh1.Ni,p(u)是一個(gè)個(gè)在u上的p次多項(xiàng)項(xiàng)式2.非負(fù)性性--對(duì)所有有的i,p和u,Ni,p(u)是非負(fù)負(fù)的3.局部支支撐((LocalSupport)--Ni,p(u)是在[ui,ui+p+1)上的非非零多多項(xiàng)式式。。4.在任一一區(qū)間間[ui,ui+1),最多有有p+1個(gè)p次的基基函數(shù)數(shù)非零零,即即:Ni-p,p(u),Ni-p+1,p(u),Ni-p+2,p(u),...,和Ni,p(u)5.單位分分解((PartitionofUnity)--所有非非零的的p次基函函數(shù)在在區(qū)間間[ui,ui+1)上的和和(sum)是1。6.如果節(jié)節(jié)點(diǎn)數(shù)數(shù)是m+1,基函數(shù)數(shù)的次次數(shù)是是p,而p次基函函數(shù)的的數(shù)目目是n+1,,那么么m=n+p+1。7.基函數(shù)數(shù)Ni,p(u)是p次多項(xiàng)項(xiàng)式的的復(fù)合合曲線線,連連接點(diǎn)點(diǎn)在[ui,ui+p+1)上的節(jié)節(jié)點(diǎn)處處。8.在一個(gè)個(gè)有重重復(fù)度度k的節(jié)點(diǎn)點(diǎn)處,,基函函數(shù)Ni,p(u)是Cp-k連續(xù)的的。增增加加重復(fù)復(fù)度減減小連連續(xù)性性的層層次((level),增增加次次數(shù)增增加連連續(xù)性性。上上述2次基函函數(shù)N0,2(u)在節(jié)點(diǎn)點(diǎn)2和3處是C1連續(xù)的的,因因?yàn)樗鼈兪鞘呛?jiǎn)單單節(jié)點(diǎn)點(diǎn)。NURBS(Non-UniformRationalB-Splines):DefinitionNURBS曲線可可以由由任意意數(shù)量量的控控制點(diǎn)點(diǎn)來(lái)定定義((就是是說,,任何何大于于3的數(shù))),這這樣反反過來(lái)來(lái)就意意味著著這整整個(gè)曲曲線是是由很很多相相連的的片段段所組組成的的。下下面的的圖釋釋展示示了一一個(gè)有有10個(gè)控制制點(diǎn)的的D3曲線。。所有有獨(dú)立立的片片段都都給予予了一一個(gè)不不同的的顏色色。你你可以以看到到,每每一個(gè)個(gè)片段段都有有一個(gè)個(gè)非常常簡(jiǎn)單單的形形狀;;一個(gè)個(gè)你可可以看看作近近似于于一條條傳統(tǒng)統(tǒng)的4點(diǎn)貝塞塞爾曲曲線的的形狀狀。片段與與片段段之間間的小小圓圈圈代表表著這這個(gè)曲曲線的的節(jié)點(diǎn)點(diǎn)向量量。這這條D3曲線擁?yè)碛?0個(gè)控制制點(diǎn)和和12個(gè)節(jié)點(diǎn)點(diǎn)(0~11)。這這并非非一個(gè)個(gè)巧合合,節(jié)節(jié)點(diǎn)的的數(shù)量量直接接取決決于點(diǎn)點(diǎn)的數(shù)數(shù)量和和度數(shù)數(shù):K=P+(D-1)非均勻勻有理理B樣條曲曲線(NURBS),是一一種用用途廣廣泛的的樣條條曲線線,它它不僅僅能夠夠用于于描述述自由由曲線線和曲曲面,,而且且還提提供了了包括括能精精確表表達(dá)圓錐曲曲線曲面在在內(nèi)各各種幾幾何體體的統(tǒng)統(tǒng)一表表達(dá)式式。自自1983年,SDRC公司成成功地地將NURBS模型應(yīng)應(yīng)用在在它的的實(shí)體體造型型軟件件中,,NURBS已經(jīng)成成為計(jì)計(jì)算機(jī)機(jī)輔助助設(shè)計(jì)計(jì)及計(jì)計(jì)算機(jī)機(jī)輔助助制造造的幾幾何造造型基基礎(chǔ),,得到到了廣廣泛應(yīng)應(yīng)用。。NURBSaresimplyanotherfaceofB-splinecurves.ConsidercontrolpointsPwi=(wixi,wiyi,wizi,wi).Thispointhasfourcomponentsandcanbeconsideredasapointinthefour-dimensionalspace,and,consequently,C(u)belowbecomesaB-splinecurveinthefour-dimensionalspace:曲線的的連續(xù)續(xù)性((Continuity)樣條曲曲線是是由多多項(xiàng)式式曲線線段連連接而而成的的曲線線,在在具體體的應(yīng)應(yīng)用中中,要要求連連接線線段的的連接接處滿滿足特特定的的連續(xù)續(xù)性條條件,,來(lái)保保證曲曲線整整體的的光順。組合參參數(shù)曲曲線在在連接接處具具有直直到n階的連連續(xù)導(dǎo)導(dǎo)矢,,這類類光順順性稱稱之為為Cn或n階參數(shù)數(shù)連續(xù)續(xù)性((parametriccontinuity);幾何連連續(xù)性性(geometriccontinuity)是指指組合合曲線線在連連接處處滿足足不同同于Cn的某一一組約約束條條件稱稱之為為具有有n階的幾幾何連連續(xù)性性,簡(jiǎn)簡(jiǎn)稱為為Gn。曲線的的連續(xù)續(xù)性((Continuity)(1)0階連續(xù)續(xù)兩個(gè)相相鄰線線段S1(t1)和S2(t2)在連接接處的的位置置連續(xù)續(xù),即即S1(1)=S2(0)。記為為C0連續(xù)。。(2)1階連續(xù)續(xù)相鄰的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論