CG教案7-2曲線曲面_第1頁
CG教案7-2曲線曲面_第2頁
CG教案7-2曲線曲面_第3頁
CG教案7-2曲線曲面_第4頁
CG教案7-2曲線曲面_第5頁
已閱讀5頁,還剩134頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2023/2/21第七章曲線與曲面7.1曲線曲面基礎(chǔ)7.2三次樣條曲線曲面7.3Bézier曲線和曲面7.4B樣條曲線和曲面7.5非均勻有理B樣條曲線曲面7.6用OpenGL生成曲線和曲面2023/2/22曲線與曲面概述

曲線曲面的計(jì)算機(jī)輔助設(shè)計(jì)源于20世紀(jì)60年代的飛機(jī)和汽車工業(yè)。1963年美國波音公司的Ferguson提出用于飛機(jī)設(shè)計(jì)的參數(shù)三次方程;1962年法國雷諾汽車公司的Bézier提出以逼近為基礎(chǔ)的曲線曲面設(shè)計(jì)系統(tǒng)UNISURF,此前deCasteljau大約于1959年在法國另一家汽車公司雪鐵龍的CAD系統(tǒng)中有同樣的設(shè)計(jì),但因?yàn)楸C艿脑蚨鴽]有公布;1964年Coons提出了一類布爾和形式的曲面;1972年,deBoor和Cox分別給出B樣條的標(biāo)準(zhǔn)算法;1975年以后,Riesenfeld等人研究了非均勻B樣條曲線曲面,美國錫拉丘茲大學(xué)的

Versprille研究了有理B樣條曲線曲面,20世紀(jì)80年末、90年代初,Piegl和Tiller等人對(duì)有理B樣條曲線曲面進(jìn)行了深入的研究,并形成非均勻有理B樣條(Non-UniformRationalB-Spline,簡稱NURBS);1991年國際標(biāo)準(zhǔn)組織(ISO)正式頒布了產(chǎn)品數(shù)據(jù)交換的國際標(biāo)準(zhǔn)STEP,NURBS是工業(yè)產(chǎn)品幾何定義唯一的一種自由型曲線曲面。2023/2/23曲線曲面設(shè)計(jì)方法的要求

整個(gè)曲線曲面設(shè)計(jì)方法的發(fā)展史表明了曲線曲面設(shè)計(jì)方法的要求:避免高次多項(xiàng)式函數(shù)可能引起的過多拐點(diǎn),曲線曲面設(shè)計(jì)宜采用低次多項(xiàng)式函數(shù)進(jìn)行組合;組合曲線曲面在公共連接處滿足一定的連續(xù)性;繪圖過程具有明確的幾何意義,且操作方便;具有幾何不變性;具有局部修改性。2023/2/247.1曲線曲面基礎(chǔ)7.1.1曲線、曲面的表示形式1.曲線的表示形式平面曲線的直角坐標(biāo)表示形式為:

或其參數(shù)方程則為:平面上一點(diǎn)的位置可用自原點(diǎn)到該點(diǎn)的矢量表示:

上式稱為曲線的矢量方程,其坐標(biāo)分量表示式是曲線的參數(shù)方程。2023/2/25r(t2)r(t1)OYXZ圖7-1空間曲線

三維空間曲線可理解為一個(gè)動(dòng)點(diǎn)的軌跡,位置矢量r隨時(shí)間t變化的關(guān)系就是一條空間曲線。

矢量方程為:三維空間曲線的參數(shù)方程為:2023/2/26用s表示曲線的弧長,以弧長為參數(shù)的曲線方程稱為自然參數(shù)方程。以弧長為參數(shù)的曲線,其切矢為單位矢量,記為t(s)。切矢t(s)對(duì)弧長s求導(dǎo),所得導(dǎo)矢dt(s)/ds與切矢相垂直,稱為曲率矢量,如圖7-2,其單位矢量稱為曲線的單位主法矢,記為n(s),其模長稱為曲線的曲率,記為k(s)。曲率的倒數(shù)稱為曲線的曲率半徑,記為ρ(s)。

與t和n相互垂直的單位矢量稱為副法矢,記為b(s)。由t和n張成的平面稱為密切平面;由n和b張成的平面稱為法平面;由t和b張成的平面稱為從切面。

法平面密切平面從切面tnρbP圖7-2曲線特性分析

曲率,其幾何意義是曲線的單位切矢量t(s)對(duì)弧長的轉(zhuǎn)動(dòng)率。撓率的絕對(duì)值等于副法線方向b(s)(或密切平面)對(duì)于弧長的轉(zhuǎn)動(dòng)率.曲率和撓率)(ssTD+)(sTTDO

曲率和撓率(a)(b)1N1B1T0N0B0T0B1BqDqD2023/2/282.曲面的表示形式一般曲面可表示為:

其參數(shù)表達(dá)式為:

曲面的矢量方程為:

參數(shù)u、v的變化區(qū)間常取為單位正方形,即u,v∈[0,1]。x,y,z都是u和v二元可微函數(shù)。當(dāng)(u,v)在區(qū)間[0,1]之間變化時(shí),與其對(duì)應(yīng)的點(diǎn)(x,y,z)就在空間形成一張曲面。

u映射空間域參數(shù)域v2023/2/29r對(duì)

u和v的一階偏導(dǎo)數(shù)為:

一階偏導(dǎo)數(shù)ru(u,v)和rv(u,v)繼續(xù)對(duì)u,v求偏導(dǎo)數(shù),得到四個(gè)二階偏導(dǎo)數(shù)ruu、ruv、rvu、rvv:ruv和rvu稱為二階混合偏導(dǎo)數(shù),在二階連續(xù)時(shí),兩者相同。2023/2/210rvnruZvv3v2v1v0OuYXr(u,v)圖7-3空間曲面

如圖7-3,曲面上一點(diǎn)的切矢ru和rv所張成平面稱為曲面在該點(diǎn)的切平面。曲面上所有過該點(diǎn)的曲線在此點(diǎn)的切矢都位于切平面內(nèi)。切平面的法矢就是曲面在該點(diǎn)的法矢。2023/2/211

直紋面

旋轉(zhuǎn)面對(duì)于固定的u,它是一條直線,當(dāng)u變化時(shí),就成了面,即“線動(dòng)成面”。

雙線性插值曲面

3.幾種典型的面2023/2/212Coons曲面是已知曲面片的四條邊界曲線,由兩張直紋曲面的和減去一張雙線性插值曲面得到的:

這種布爾和形式的曲面是Coons于1967年研究的,拼合時(shí)整張曲面C0連續(xù),即位置連續(xù)。要達(dá)到C1連續(xù),必須考慮跨界切矢的插值。

Coons曲面(麻省理工學(xué)院)2023/2/213

雙線性插值曲面,采用了“先定義線,然后線動(dòng)成面”的思想。張量積曲面也是采用“線動(dòng)成面”的思想,是CAGD中應(yīng)用最廣泛的一類曲面生成方法。映射空間域參數(shù)域vu

張量積曲面2023/2/214

定義在uv平面的矩形區(qū)域上的這張曲面稱為張量積曲面。張量積曲面的特點(diǎn)是將曲面問題化解為簡單的曲線問題來處理,適用于拓?fù)渖铣示匦蔚那嫘螤?。樣條的歷史很早的繪圖員利用壓鐵“ducks”和有柔性的木條(樣條)來繪制曲線木質(zhì)的樣條具有二階連續(xù)并且通過所有的控制點(diǎn)ADuck(weight)Duckstraceoutcurve7.1.2曲線曲面的光滑連接2023/2/2161.插值、擬合與逼近插值:給定一組有序的數(shù)據(jù)點(diǎn)Pi,i=0,1,…,n,構(gòu)造一條曲線順序通過這些數(shù)據(jù)點(diǎn),稱為對(duì)這些數(shù)據(jù)點(diǎn)進(jìn)行插值,所構(gòu)造的曲線稱為插值曲線。擬合:構(gòu)造一條曲線使之在某種意義下最接近給定的數(shù)據(jù)點(diǎn)(但未必通過這些點(diǎn)),所構(gòu)造的曲線為擬合曲線。逼近:在計(jì)算數(shù)學(xué)中,逼近通常指用一些性質(zhì)較好的函數(shù)近似表示一些性質(zhì)不好的函數(shù)。在計(jì)算機(jī)圖形學(xué)中,逼近繼承了這方面的含義,因此插值和擬合都可以視為逼近。

原始數(shù)據(jù)點(diǎn)精確原始數(shù)據(jù)點(diǎn)不精確給定一組有序的數(shù)據(jù)點(diǎn)Pi,i=0,1,…,n,構(gòu)造一條曲線順序通過這些數(shù)據(jù)點(diǎn),稱為對(duì)這些數(shù)據(jù)點(diǎn)進(jìn)行插值,所構(gòu)造的曲線稱為插值曲線。線性插值:假設(shè)給定函數(shù)f(x)在兩個(gè)不同點(diǎn)x1和x2的值,用一個(gè)線形函數(shù):y=ax+b,近似代替,稱為的線性插值函數(shù)。拋物線插值:已知在三個(gè)互異點(diǎn)的函數(shù)值為,要求構(gòu)造一個(gè)函數(shù)使拋物線在結(jié)點(diǎn)處與在處的值相等。插值xyo1y2y)(xfy=)(xyj=1x2xxyo1y2y)(xfy=)(xyj=1x2x3x3y(a)(b)

線性插值和拋物插值逼近:構(gòu)造一條曲線使之在某種意義下最接近給定的數(shù)據(jù)點(diǎn)(但未必通過這些點(diǎn)),所構(gòu)造的曲線稱為逼近曲線。在計(jì)算數(shù)學(xué)中,逼近通常指用一些性質(zhì)較好的函數(shù)近似表示一些性質(zhì)不好的函數(shù)。

曲線的逼近逼近求給定型值點(diǎn)之間曲線上的點(diǎn)稱為曲線的插值。將連接有一定次序控制點(diǎn)的直線序列稱為控制多邊形或特征多邊形。

曲線的逼近凸殼(凸包)凸殼Convexhull的定義:

包含一組控制點(diǎn)的凸多邊形邊界。凸殼的作用提供了曲線或曲面與包圍控制點(diǎn)的區(qū)域之間的偏差的測量以凸殼為界的樣條保證了多項(xiàng)式沿控制點(diǎn)的平滑前進(jìn)凸殼光順(Firing)指曲線的拐點(diǎn)不能太多。對(duì)平面曲線而言,相對(duì)光順的條件是:a.具有二階幾何連續(xù)性(G2);b.不存在多余拐點(diǎn)和奇異點(diǎn);c.曲率變化較小。光順2023/2/224XYX’Y’由一組基函數(shù)及相聯(lián)系的系數(shù)矢量來表示:采用不同的基函數(shù),曲線的數(shù)學(xué)表示方法就不同?;瘮?shù)一旦確定,系數(shù)矢量就完全定義了曲線。2.計(jì)算機(jī)輔助幾何設(shè)計(jì)(CAGD)中的曲線的一般表示形式規(guī)范基表示具有幾何不變性。即同樣的點(diǎn)在不同坐標(biāo)系中生成的曲線相同。拋物線方程不具有幾何不變性。2023/2/2253.曲線曲面的光滑連接給定一段曲線,如果在整個(gè)參數(shù)定義域內(nèi)處處k次可微,則稱該曲線為Ck參數(shù)連續(xù)。給定兩段內(nèi)部Ck連續(xù)的參數(shù)曲線r1(u1),u1∈[0,1]和r2(u2),u2∈[0,1],則兩段曲線在公共連接點(diǎn)處不同階次的連續(xù)性對(duì)應(yīng)不同的要求。2023/2/2261)位置連續(xù) 曲線段r1(u1)的末端和曲線段r2(u2)的首端達(dá)到位置連續(xù)的條件為:r1(1)=r2(0)

位置連續(xù)是C0連續(xù)。2023/2/2272)

斜率連續(xù)曲線段r1(u1)的末端和曲線段r2(u2)的首端達(dá)到斜率連續(xù)的條件為:r'1(1)=kr'2(0)若k=1,說明曲線段r1(u1)的末端切矢與曲線段r2(u2)的首端切方向相同、模長相等,稱為C1連續(xù)。若k≠1,則說明兩段曲線在公共連接點(diǎn)處的切矢方向相同,但模長不相等。這種情況是幾何連續(xù)的,稱為G1連續(xù)。也稱視覺連續(xù)。切矢方向與模:方向相同,模不同,G1連續(xù);方向相同,模相同,C1連續(xù);2023/2/2283)曲率連續(xù)兩曲線段曲率連續(xù)應(yīng)滿足:(1)位置連續(xù);(2)斜率連續(xù);(3)曲率相等且主法矢方向一致。曲率連續(xù)的條件為:C2連續(xù)滿足條件:

幾何意義是:曲線段r2(u)首端的二階導(dǎo)矢應(yīng)處在由曲線段r1(v)末端的二階導(dǎo)矢和一階導(dǎo)矢所張成的平面內(nèi)。

對(duì)于曲面片,若兩個(gè)曲面片在公共連接線上處處滿足上述各類連續(xù)性條件,則兩個(gè)曲面片之間有同樣的結(jié)論。

2023/2/230n次多項(xiàng)式的全體構(gòu)成n次多項(xiàng)式空間,在其中任選一組線性無關(guān)的多項(xiàng)式都可以作為基。

冪基

ui,i=0,1,…,n,是最簡單的多項(xiàng)式基,相應(yīng)的參數(shù)多項(xiàng)式曲線方程為:

對(duì)于給定的n+1個(gè)數(shù)據(jù)點(diǎn)Pi,i=0,1,2,…,n,欲構(gòu)造其插值曲線或逼近曲線,必先得到對(duì)應(yīng)于各數(shù)據(jù)點(diǎn)Pi的參數(shù)值ui,ui是一個(gè)嚴(yán)格遞增的序列△U:u0<u1<…<un。4.參數(shù)多項(xiàng)式曲線2023/2/231采用不同的參數(shù)化,得到的曲線也不同。常用的參數(shù)化方法有:均勻參數(shù)化(等距參數(shù)化)積累弦長參數(shù)化向心參數(shù)化修正弦長參數(shù)化對(duì)給定的數(shù)據(jù)點(diǎn)實(shí)行參數(shù)化,將參數(shù)值ui代入前面所述方程,使之滿足插值條件:得一線性方程組:2023/2/232解線性方程組,可得系數(shù)矢量的唯一解。然而,冪基多項(xiàng)式曲線方程中的系數(shù)矢量幾何意義不明確,構(gòu)造曲線時(shí),需解線性方程組,n較大時(shí),不可取。其它多項(xiàng)式插值曲線如Lagrange、Newton、Hermite等較之冪基多項(xiàng)式曲線在計(jì)算性能等方面有較大改進(jìn),但總體上多項(xiàng)式曲線存在兩個(gè)問題:l

次數(shù)增高時(shí),出現(xiàn)多余的拐點(diǎn);l

整體計(jì)算,一個(gè)數(shù)據(jù)點(diǎn)的微小改動(dòng),可能引起曲線整體大的波動(dòng)。2023/2/233由于高次多項(xiàng)式曲線存在缺陷,單一低次多項(xiàng)式曲線又難以描述復(fù)雜形狀的曲線。所以采用低次多項(xiàng)式按分段的方式在一定連續(xù)條件下拼接復(fù)雜的組合曲線是唯一的選擇。

低次多項(xiàng)式組合曲線以三次多項(xiàng)式為例:2023/2/234y1(x)=a1+b1x+c1x2+d1x3y2(x)=a2+b2x+c2x2+d2x3y3(x)=a3+b3x+c3x2+d3x3“線動(dòng)成面”

如何選擇基函數(shù)使系數(shù)具有幾何意義,且操作方便、易于修改是曲線曲面設(shè)計(jì)方法的發(fā)展方向。7.5.1樣條描述n次樣條參數(shù)多項(xiàng)式曲線的矩陣:7.5Himerte樣條

基函數(shù)(blengingfunction),或稱混合函數(shù)。7.5.2三次樣條給定n+1個(gè)點(diǎn),可得到通過每個(gè)點(diǎn)的分段三次多項(xiàng)式曲線:7.5.3自然三次樣條定義:給定n+1個(gè)型值點(diǎn),現(xiàn)通過這些點(diǎn)列構(gòu)造一條自然三次參數(shù)樣條曲線,要求在所有曲線段的公共連接處均具有位置、一階和二階導(dǎo)數(shù)的連續(xù)性,即自然三次樣條具有C2連續(xù)性。還需要兩個(gè)附加條件才能解出方程組.

特點(diǎn):1.只適用于型值點(diǎn)分布比較均勻的場合2.不能“局部控制”

7.5.4三次Hermite樣條定義:假定型值點(diǎn)Pk和Pk+1之間的曲線段為p(t),t∈[0,1],給定矢量Pk、Pk+1、Rk和Rk+1,則滿足下列條件的三次參數(shù)曲線為三次Hermite樣條曲線:

推導(dǎo):幾何形式對(duì)三次參數(shù)曲線,若用其端點(diǎn)位矢P(0)、P(1)和切矢P¢(0)、P¢(1)描述。將P(0)、P(1)、P¢(0)和P¢(1)簡記為P0、P1、P¢0和P¢1,代入得

Mh是Hermite矩陣。Gh是Hermite幾何矢量。三次Hermite樣條曲線的方程為:

通常將T?Mk稱為Hermite基函數(shù)(或混合函數(shù),調(diào)和函數(shù)):

H(t)t10.20.40.60.80.20.40.60.81`-0.2H0(t)H1(t)H2(t)H3(t)Hermite基函數(shù)特點(diǎn)分析:1.可以局部調(diào)整,因?yàn)槊總€(gè)曲線段僅依賴于端點(diǎn)約束。2.Hermite曲線具有幾何不變性2023/2/248Bézier曲線是法國雷諾汽車公司的工程師Bézier于1962年提出。1972年在UNISURF系統(tǒng)中正式投入使用。Bézier曲線采用一組特殊的基函數(shù),使得基函數(shù)的系數(shù)具有明確的幾何意義。其曲線方程:

其中從a0到an首尾相連的折線稱為Bézier控制多邊形。7.3Bézier曲線和曲面(注:Bézier本人也不能解釋該公式的來源)a0a1a2a3ai為相對(duì)位置矢量7.3.1Bézier曲線2023/2/249當(dāng)n=3時(shí):f0(t)f1(t)f2(t)f3(t)1102023/2/250英國的Forest于1972年將上述Bézier曲線中的控制多邊形頂點(diǎn)改為絕對(duì)位置矢量的Bernstein基表示形式:當(dāng)n=3時(shí):

P0P1P2P3Pi為絕對(duì)位置矢量B0,3(t)B1,3(t)B3,3(t)B2,3(t)三次基函數(shù)的圖像2023/2/251三次Bezier曲線的矩陣表示取為幾何矩陣GBEZ取為基矩陣MBEZ2023/2/252注意:有的教材中三次Bézier曲線的矩陣表示形式為:三次Bézier曲線:2023/2/253曲線的生成:參數(shù)離散計(jì)算型值點(diǎn)連接型值點(diǎn)折線2023/2/254#defineX0#defineY1#defineZ2typedeffloatVector[3];voidDisplayCubicBezierCurve(VectorP[4],intcount){floatC[3][4],t,deltat;VectorV,newV;inti,j;for(j=0;j<3;j++) /*C=GBEN*MBEN*/{ C[j][0]=P[0][j]; C[j][1]=-3*P[0][j]+3*P[1][j]; C[j][2]=3*P[0][j]-6*P[1][j]+3*P[2][j]; C[j][3]=-P[0][j]+3*P[1][j]-3*P[2][j]+P[3][j];}V[X]=P[0][X];V[Y]=P[0][Y];V[Z]=P[0][Z];/*將曲線的起點(diǎn)賦給矢量V*/detat=1.0/count;t=0.0;for(i=1;i<=count;i++){ t+=deltat; newV[X]=C[X][0]+t*(C[X][1]+t*(C[X][2]+t*C[X][3])); newV[Y]=C[Y][0]+t*(C[Y][1]+t*(C[Y][2]+t*C[Y][3])); newV[Z]=C[Z][0]+t*(C[Z][1]+t*(C[Z][2]+t*C[Z][3])); Line(V,newV); V[X]=newV[X];V[Y]=newV[Y];V[Z]=newV[Z];}}程序:生成三次Bezier曲線2023/2/255Bezier曲線的性質(zhì)端點(diǎn)位置2023/2/256端點(diǎn)切矢量

Bezier曲線在起點(diǎn)與終點(diǎn)處分別與控制多邊形的第一條邊與最后一條邊相切,它們在兩端點(diǎn)處的切矢量分別為:2023/2/257對(duì)稱性如果保持全部控制頂點(diǎn)位置不變,但次序顛倒,即Pi

變作Pn-i,則Bezier曲線形狀不變,但參數(shù)變化方向相反,即2023/2/258仿射不變性仿射不變性指的是某些幾何性質(zhì)不隨坐標(biāo)變換而變化,這些幾何性質(zhì)包括曲線的形狀、曲率、撓率等。仿射不變性還表現(xiàn)在,對(duì)于任意的仿射變換A,曲線的表示形式不變,即對(duì)曲線做變換只要對(duì)控制頂點(diǎn)做變換即可。2023/2/259凸包性點(diǎn)集 的凸包指的是包含這些點(diǎn)的最小凸集。Bezier曲線位于其控制頂點(diǎn)的凸包之內(nèi)??刂祈旤c(diǎn)的凸包為連接P0P3所形成的多邊形區(qū)域:(a)P0P1P2P3(b)P0P1P3P22023/2/260直線再生性 若控制頂點(diǎn)P0,P1,…,Pn

落于一條直線上,由凸包性可知,該Bezier曲線必為一條直線段。2023/2/261變差縮減性: 平面內(nèi)任一條直線與Bezier曲線的交點(diǎn)個(gè)數(shù)不多于該直線與其控制多邊形的交點(diǎn)個(gè)數(shù)。這一性質(zhì)說明了Bezier曲線比其控制多邊形的波動(dòng)小,更光滑。平面曲線的保型性假設(shè) 位于一張平面之內(nèi),則Bezier曲線是平面曲線,它具有下面兩條性質(zhì):保凸性:

如果控制多邊形是凸的, 則Bezier曲線也是凸的。2023/2/262擬局部性局部性:其含義是指移動(dòng)一個(gè)控制點(diǎn),它只影響曲線的某個(gè)局部。Bezier曲線不具備局部性的性質(zhì),但它具有擬局部性。擬局部性:指的是移動(dòng)一個(gè)控制點(diǎn)Pi

時(shí),對(duì)應(yīng)參數(shù)t=i/n的曲線上的點(diǎn)變動(dòng)最大,遠(yuǎn)離i/n的曲線上的點(diǎn)變動(dòng)越來越小。2023/2/263形狀的易控性控制多邊形大致上勾畫了Bezier曲線的形狀,要改變曲線只要改變頂點(diǎn)的位置即可。因此Bezier曲線的人機(jī)交互與形狀控制比較容易。2023/2/264單一Bézier曲線不能滿足描述復(fù)雜形狀的要求,必須采用組合Bézier曲線。P0P1P2P3組合Bézier曲線示意圖Bézier曲線的特點(diǎn)參數(shù)連續(xù)是對(duì)曲線光順性的過分要求,在組合曲線的連接點(diǎn)處,參數(shù)連續(xù)不僅要求切矢具有共同的切矢方向,而且要求切矢模長相等。幾何連續(xù)只要求在連接點(diǎn)處切矢方向相同,切矢模長可以不相等,由此產(chǎn)生了不同控制手段的多種曲線,如Gamma()樣條曲線、Beta()樣條曲線等,給曲線設(shè)計(jì)提供了極大的靈活性。2023/2/265若要組合Bézier曲線在連接點(diǎn)處具有一定的連續(xù)性,構(gòu)成曲線的位置點(diǎn)矢量之間存在約束條件,可用Bézier曲線方程的一階、二階導(dǎo)數(shù)推導(dǎo)。Bézier曲線的優(yōu)點(diǎn)是具有明確的幾何意義,給定數(shù)據(jù)點(diǎn)的控制多邊形確定曲線的形狀,在設(shè)計(jì)過程中具有很強(qiáng)的可操作性。對(duì)于局部參數(shù)的Bézier曲線,當(dāng)弦長差異較大時(shí),弦長較長的那段曲線過分平坦,弦長較短的那段曲線則鼓得厲害。P0P1P2P3組合Bézier曲線示意圖7.6.5Bezier曲線的遞推(deCasteljau)算法

計(jì)算Bezier曲線上的點(diǎn),可用Bezier曲線方程,但使用deCasteljau提出的遞推算法則要簡單的多。如下圖所示,設(shè)、、是一條拋物線上順序三個(gè)不同的點(diǎn)。過和點(diǎn)的兩切線交于點(diǎn),在點(diǎn)的切線交和于和,則如下比例成立:

這是所謂拋物線的三切線定理。(示意圖見下頁)

0P1P2P11P10P20PBezier曲線上的點(diǎn)

拋物線三切線定理當(dāng)P0,P2固定,引入?yún)?shù)t,令上述比值為t:(1-t),有:

t從0變到1,第一、二式就分別表示控制二邊形的第一、二條邊,它們是兩條一次Bezier曲線。將一、二式代入第三式得:當(dāng)t從0變到1時(shí),它表示了由三頂點(diǎn)P0、P1、P2三點(diǎn)定義的一條二次Bezier曲線。并且表明:這二次Bezier曲線P20可以定義為分別由前兩個(gè)頂點(diǎn)(P0,P1)和后兩個(gè)頂點(diǎn)(P1,P2)決定的一次Bezier曲線的線性組合。依次類推,由四個(gè)控制點(diǎn)定P(t)=p0+(p1-p0)t義的三次Bezier曲線P30可被定義為分別由(P0,P1,P2)和(P1,P2,P3)確定的二條二次Bezier曲線的線性組合,由(n+1)個(gè)控制點(diǎn)Pi(i=0,1,...,n)定義的n次Bezier曲線Pn0可被定義為分別由前、后n個(gè)控制點(diǎn)定義的兩條(n-1)次Bezier曲線P0n-1與P1n-1的線性組合:由此得到Bezier曲線的遞推計(jì)算公式:這便是著名的deCasteljau算法。用這一遞推公式,在給定參數(shù)下,求Bezier曲線上一點(diǎn)P(t)非常有效。上式中:是定義Bezier曲線的控制點(diǎn),即為曲線上具有參數(shù)t的點(diǎn)。deCasteljau算法穩(wěn)定可靠,直觀簡便,可以編出十分簡捷的程序,是計(jì)算Bezier曲線的基本算法和標(biāo)準(zhǔn)算法。當(dāng)n=3時(shí),decasteljau算法遞推出的Pki呈直角三角形,對(duì)應(yīng)結(jié)果如下圖所示。從左向右遞推,最右邊點(diǎn)P30即為曲線上的點(diǎn)。

0P1P2P3P10P11P12P20P21P30Pn=3時(shí)niP的遞推關(guān)系這一算法可用簡單的幾何作圖來實(shí)現(xiàn)。給定參數(shù),就把定義域分成長度為的兩段。依次對(duì)原始控制多邊形每一邊執(zhí)行同樣的定比分割,所得分點(diǎn)就是由第一級(jí)遞推生成的中間頂點(diǎn),對(duì)這些中間頂點(diǎn)構(gòu)成的控制多邊形再執(zhí)行同樣的定比分割,得第二級(jí)中間頂點(diǎn)。重復(fù)進(jìn)行下去,直到n級(jí)遞推得到一個(gè)中間頂點(diǎn)即為所求曲線上的點(diǎn),如下圖所示。

)3/1(30PP=011/3

幾何作圖法求Bezier曲線

上一點(diǎn)(n=3,t=1/3)0P1P2P3P10P11P12P20P21P7.6.6Bezier曲線的升階與降階1.Bezier曲線的升階所謂升階是指保持Bezier曲線的形狀與定向不變,增加定義它的控制頂點(diǎn)數(shù),也即是提高該Bezier曲線的次數(shù)。增加了控制頂點(diǎn)數(shù),不僅能增加了對(duì)曲線進(jìn)行形狀控制的靈活性,還在構(gòu)造曲面方面有著重要的應(yīng)用。對(duì)于一些由曲線生成曲面的算法,要求那些曲線必須是同次的。應(yīng)用升階的方法,我們可以把低于最高次數(shù)的的曲線提升到最高次數(shù),而獲得同一的次數(shù)。曲線升階后,原控制頂點(diǎn)會(huì)發(fā)生變化。下面,我們來計(jì)算曲線提升一階后的新的控制頂點(diǎn)。設(shè)給定原始控制頂點(diǎn),定義了一條n次Bezier曲線:

增加一個(gè)頂點(diǎn)后,仍定義同一條曲線的新控制頂點(diǎn)為,則有:

對(duì)上式左邊乘以,得到:

比較等式兩邊項(xiàng)的系數(shù),得到:

化簡即得:

其中。此式說明:新的控制頂點(diǎn)是以參數(shù)值按分段線性插值從原始特征多邊形得出的。升階后的新的特征多邊形在原始特征多邊形的凸包內(nèi)特征多邊形更靠近曲線。三次Bezier曲線的升階實(shí)例如下圖所示。*00PP=1P2P*43PP=*1P*2P*3P

Bezier曲線升階2.Bezier曲線的降階降階是升階的逆過程。給定一條由原始控制頂點(diǎn)定義的n次Bezier曲線,要求找到一條由新控制頂點(diǎn)定義的n-1次Bezier曲線來逼近原始曲線。假定是由升階得到,則由升階公式有:從這個(gè)方程可以導(dǎo)出兩個(gè)遞推公式:

給定空間16個(gè)位置點(diǎn)rij,可以確定一張三次Bezier曲面片。首先生成四條v向的三次Bezier曲線:

根據(jù)“線動(dòng)成面”的思想,按設(shè)定間隔取v*∈[0,1],在四條v線上取點(diǎn),沿u向生成三次Bezier曲線:

7.3.2Bézier曲面片rijuvuvV*uv將u,v向曲線方程合并得:

2023/2/280Bézier曲面片的矩陣表達(dá)式rijuv2023/2/281用Bézier曲面片組合曲面時(shí),曲面拼合處應(yīng)位置連續(xù),即要求:r1(1,v)=r2(0,v)(上標(biāo)表示曲面片1或曲面片2)[1111]AM1AT=[1000]AM2AT

C0連續(xù)的Bézier組合曲面(位置連續(xù))2023/2/282C0連續(xù)的Bézier曲面片的拼接曲面片1曲面片22023/2/283若要得到跨界一階導(dǎo)矢的連續(xù)性,對(duì)于0≤v≤1,曲面片1在u=1的切平面和曲面片2在u=0處的切平面重合,曲面的法矢在跨界處連續(xù),即:

其中λ(ν)是考慮法矢模長的不連續(xù)。

因?yàn)榱頒1連續(xù)的Bézier組合曲面(導(dǎo)矢連續(xù))可以得到組合曲面所有等v線的梯度連續(xù)的矩陣表示。

2023/2/2842023/2/285取λ(ν)=λ,得到表明跨界的四對(duì)棱邊必須共線。

2023/2/286曲面片1曲面片22023/2/287B樣條曲線是Schocenberg于1946年提出的,1972年deBoor和Cox分別給出B樣條的標(biāo)準(zhǔn)算法。作為CAGD的一種形狀描述的數(shù)學(xué)方法是Gordon和Riesenfeld于1974年在研究Bézier曲線的基礎(chǔ)上給出的。B樣條曲線方程為:其中Pi,i=0,1,….,n為控制頂點(diǎn)

K次規(guī)范B樣條基函數(shù)Ni,K(t)(i=0,1,…,n)定義如下:ti(i=0,1,…,n)是對(duì)應(yīng)于給定數(shù)據(jù)點(diǎn)的節(jié)點(diǎn)參數(shù)。7.4B樣條曲線和曲面2023/2/2880次(1階)B-樣條曲線K=0時(shí)的B-樣條基函數(shù)2023/2/2890次B-樣條曲線示例2023/2/2901次(2階)B-樣條基函數(shù)K=1時(shí)的基函數(shù)2023/2/291K=1時(shí)定義的曲線示例2023/2/2922次(3階)B-樣條基函數(shù)K=2時(shí)的基函數(shù)2023/2/293續(xù)前頁:2023/2/294續(xù)前頁:2023/2/295續(xù)前頁:2023/2/296續(xù)前頁:2023/2/2973階B-樣條基函數(shù)圖形2023/2/298[t0,t1][t1,t2][t2,t3][t3,t4][t4,t5]區(qū)間1階基函數(shù)2階基函數(shù)3階基函數(shù)4階基函數(shù)5階基函數(shù)節(jié)點(diǎn)矢量:由于每個(gè)基函數(shù)Ni,k需要的支撐區(qū)間是[ti,ti+k+1],考慮基函數(shù)的下標(biāo)從0開始到n,所以節(jié)點(diǎn)矢量為[t0,tn+k+1]。遞推計(jì)算2023/2/299B-樣條曲線的定義共n-k+2段有效區(qū)間:[ti,ti+1]區(qū)間上定義k個(gè)非零基函數(shù)(Ni-k+1,k~Ni,k)

因此,有效區(qū)間的下標(biāo)應(yīng)滿足i>=k-1;與控制點(diǎn)對(duì)應(yīng),有效基函數(shù)下標(biāo)應(yīng)滿足:i<=n。故:總有效區(qū)間為[tk-1,tn+1]。2023/2/21003階B樣條曲線示例T=[t0,t1,…,tn+1,tn+2,tn+3]2023/2/2101B-樣條基函數(shù)的性質(zhì)局部性權(quán)性連續(xù)性2023/2/2102B-樣條基函數(shù)的局部性在每一個(gè)區(qū)間上至多只有k個(gè)基函數(shù)非零,它們是:2023/2/2103B-樣條基函數(shù)的權(quán)性上式右端根據(jù)遞推公式展開并化簡得到:2023/2/2104B-樣條基函數(shù)的連續(xù)性2023/2/2105B-樣條曲線的分類根據(jù)節(jié)點(diǎn)矢量的不同形式分類均勻B樣條曲線準(zhǔn)均勻B樣條曲線分段Bezier曲線非均勻B樣條曲線采用均勻節(jié)點(diǎn)矢量,即所有節(jié)點(diǎn)區(qū)間長度為大于0的常數(shù),這樣的節(jié)點(diǎn)矢量定義了均勻B-樣條基,從而定義出均勻B-樣條曲線。當(dāng)節(jié)點(diǎn)矢量在首末端點(diǎn)處有K重重復(fù)度,而在內(nèi)部為均勻分布時(shí),可定義準(zhǔn)均勻B-樣條曲線。節(jié)點(diǎn)矢量在首末端點(diǎn)處有K重重復(fù)度,而在內(nèi)部為非均勻分布。2023/2/2106均勻B-樣條曲線均勻節(jié)點(diǎn)矢量均勻B-樣條基均勻B-樣條曲線2023/2/2107例:三次均勻B樣條曲線(1)2023/2/2108三次均勻B樣條曲線(2)2023/2/2109基函數(shù)的平移性三次均勻B樣條曲線(3)1階基函數(shù)2階基函數(shù)2023/2/2110三次均勻B樣條曲線(4)2023/2/2111三次均勻B樣條曲線(5)由前面推導(dǎo)過程得到:2023/2/2112三次均勻B樣條曲線(6)2023/2/2113三次均勻B樣條曲線(7)2023/2/2114三次均勻B樣條曲線(8)2023/2/2115三次均勻B樣條曲線(9)上式即為區(qū)間[tj,tj+1]上3次均勻B樣條曲線的矩陣表達(dá)式。2023/2/2116P(3)P(4)P(5)2023/2/2117當(dāng)K=3,且采用均勻參數(shù)化時(shí),得到三次均勻B樣條曲線:7.4.1均勻B樣條曲線2023/2/2118在分段連接點(diǎn)處B樣條曲線的值和導(dǎo)矢量為:

上式描述的三次均勻B樣條曲線段的幾何特性如圖所示:曲線段首點(diǎn)位于以didi+1和di+1di+2為鄰邊的平行四邊形的1/6處;其切失與didi+2平行,模為長度的1/2;首點(diǎn)二階導(dǎo)矢是以di+1di和di+1di+2為鄰邊的平行四邊形的對(duì)角線。曲線末端也有類似的結(jié)論。圖7-13三次均勻B樣條曲線段的幾何特性2023/2/2119圖7-13三次均勻B樣條曲線段的幾何特性由圖7-13可以看出:當(dāng)di、di+1和di+2三點(diǎn)共線時(shí),曲線段起點(diǎn)Si(0)處二階導(dǎo)數(shù)S"i(0)為0,Si(0)可能為拐點(diǎn)(如圖7-14);當(dāng)di、di+1、

di+2和di+3四點(diǎn)共線時(shí),其所定義的曲線段退化為直線段;當(dāng)di+1和di+2兩頂點(diǎn)重合時(shí),曲線段起點(diǎn)Si(0)和末點(diǎn)Si(1)分別與didi+1和與di+1di+2

相切,且端點(diǎn)曲率為0(如圖7-15);2023/2/2120當(dāng)di+1、di+2和di+3三頂點(diǎn)重合時(shí),則曲線段在重點(diǎn)處出現(xiàn)尖點(diǎn),重點(diǎn)與前點(diǎn)和后點(diǎn)在尖點(diǎn)前后各形成一段直線段(如圖7-16)。曲線的上述退化情形在實(shí)際設(shè)計(jì)中很有用,如圖7-17是應(yīng)用曲線退化情形設(shè)計(jì)的尖點(diǎn)和直線段。2023/2/2121

對(duì)于三次均勻B樣條曲線,計(jì)算對(duì)應(yīng)于參數(shù)[ui,ui+1]這段曲線上的一點(diǎn),要用到Ni-3,3(u)、Ni-2,3(u)、Ni-1,3(u)、Ni,3(u)四個(gè)基函數(shù),涉及ui-3到ui+4共8個(gè)節(jié)點(diǎn)的參數(shù)值。

B樣條曲線的基函數(shù)是局部支撐的,修改一個(gè)數(shù)據(jù)點(diǎn),在修改處影響最大,對(duì)其兩側(cè)的影響快速衰減,其影響范圍只有前后各K段曲線,對(duì)曲線的其它部分沒有影響。這是計(jì)算機(jī)輔助幾何設(shè)計(jì)所需要的局部修改性。2023/2/2122

B樣條曲線的基函數(shù)是局部支撐的,均勻B樣條曲線未考慮曲線數(shù)據(jù)點(diǎn)的分布對(duì)參數(shù)化的影響,當(dāng)曲線弦長差異較大時(shí),弦長較長的曲線段比較平坦,而弦長較短的曲線段則臌漲,甚至于因過“沖”而產(chǎn)生“紐結(jié)”。2023/2/21237.4.2均勻B樣條曲面

給定16個(gè)頂點(diǎn)dij(i=1,2,3,4;j=1,2,3,4)構(gòu)成的特征網(wǎng)格,可以定義一張曲面片。d24uvd42d43d44d11d12d13d14d21d23d31d32d33d34C4C3C1C2d41d22首先用di1、di2、di3、di4(i=1,2,3,4)構(gòu)建四條V向曲線C1、C2、C3和C4(圖中虛線);2023/2/2124均勻B樣條曲面(續(xù))參數(shù)v在[0,1]之間取值vk,對(duì)應(yīng)于vk,曲線C1、C2、C3和C4上可得到V1k、V2k、V3k和V4k四個(gè)點(diǎn),該四點(diǎn)構(gòu)成u向的一個(gè)特征多邊形,定義一條新的曲線P(u,vk);uvC4C3C1C2V1kV3kV4kV2k當(dāng)參數(shù)vk在[0,1]之間取不同值時(shí),P(u,vk)沿如圖所示的黃色箭頭方向掃描,即得到由給定特征網(wǎng)格dij(i=1,2,3,4;j=1,2,3,4)定義的雙三次均勻B樣條曲面片P(u,v)。2023/2/2125

雙三次均勻B樣條曲面P(u,v)的矩陣表示d24uvV1kd42d43d44d11d12d13d14d21d23d31d32d33d34C4C3C1C2V2kV3kV4kd41P(u,vK)d222023/2/2126考慮曲線弦長的影響,則曲線的基函數(shù)不再具有同樣的格式,必須根據(jù)給定數(shù)據(jù)點(diǎn)進(jìn)行弦長參數(shù)化,然后根據(jù)基函數(shù)的定義用如下的曲線方程計(jì)算各段曲線上的點(diǎn):

非均勻B樣條曲線考慮了弦長的影響,曲線不會(huì)因?yàn)楣?jié)點(diǎn)分布不均勻而產(chǎn)生過沖和紐結(jié)。非均勻B樣條曲線比均勻B樣條曲線具有更好的光順性,更符合數(shù)據(jù)點(diǎn)的分布。7.5非均勻有理B樣條曲線曲面7.5.1非均勻B樣條曲線曲面非均勻B樣條均勻B樣條2023/2/2127根據(jù)非均勻B樣條曲線方程,計(jì)算曲線上的點(diǎn)需要對(duì)應(yīng)參數(shù)區(qū)間上的基函數(shù)的值和控制多邊形的頂點(diǎn)。基函數(shù)的值根據(jù)給定數(shù)據(jù)點(diǎn)的參數(shù)化進(jìn)行計(jì)算??刂贫噙呅蔚捻旤c(diǎn)依據(jù)曲線是否通過給定數(shù)據(jù)點(diǎn)確定。若生成的曲線不通過給定數(shù)據(jù)點(diǎn),則給定數(shù)據(jù)點(diǎn)就是控制多邊形頂點(diǎn)。若生成的曲線通過給定數(shù)據(jù)點(diǎn),則首先必須根據(jù)給定數(shù)據(jù)點(diǎn)反求控制多邊形的頂點(diǎn),然后再代入曲線。

非均勻B樣條曲線的實(shí)現(xiàn)2023/2/2128

給定數(shù)據(jù)點(diǎn)di(i=0,1,…,n-1)就是控制多邊形的頂點(diǎn)。不過點(diǎn)三次非均勻B樣條開口和閉口曲線需要分別處理。對(duì)于開口曲線,n個(gè)數(shù)據(jù)點(diǎn)只畫n-3段曲線,需n-2個(gè)節(jié)點(diǎn)參數(shù)。而計(jì)算[Ui,Ui+1]上的一點(diǎn),要用到除它們之外的前3個(gè)和后3個(gè)節(jié)點(diǎn)參數(shù),所以在首尾各添加3個(gè)節(jié)點(diǎn)參數(shù),一共需要n+4個(gè)節(jié)點(diǎn)參數(shù)值。為使曲線過給定數(shù)據(jù)的首末點(diǎn),令U0=U1=U2=0;Un+1=Un+2=Un+3=1;全部節(jié)點(diǎn)參數(shù)為:U0=U1=U2=0;UK,UK+1,…,Un;Un+1=Un+2=Un+3=1;(1)不過點(diǎn)三次非均勻B樣條曲線2023/2/2129用Hartley-Judd方法,即所畫曲線段對(duì)應(yīng)的控制多邊形的長度與總控制多邊形的長度之比確定節(jié)點(diǎn)參數(shù)。計(jì)算出節(jié)點(diǎn)參數(shù)后,就可以用前述的遞歸函數(shù)計(jì)算基函數(shù)Ni,K(u)的值,得到基函數(shù)的值,就可以代入曲線方程計(jì)算各段曲線上的點(diǎn)。圖7-22不過點(diǎn)非均勻B樣條曲線2023/2/2130對(duì)于閉合曲線,n個(gè)數(shù)據(jù)點(diǎn)畫n段曲線,需n+1個(gè)節(jié)點(diǎn)參數(shù)曲線;首尾各添加3個(gè)節(jié)點(diǎn)參數(shù),共n+7個(gè)節(jié)點(diǎn)參數(shù)。由于不過點(diǎn)閉合曲線,不通過控制多邊形的首末點(diǎn),全部節(jié)點(diǎn)參數(shù)為:

U0=0<U1<U2<UK<UK+1<…<Un+3<Un+4<Un+5<Un+6=1各節(jié)點(diǎn)的參數(shù)值采用Hartley-Judd方法。計(jì)算出節(jié)點(diǎn)參數(shù)后,就可以計(jì)算基函數(shù)Ni,K(u)的值,然后用曲線方程計(jì)算各段曲線上的點(diǎn)。2023/2/2131對(duì)于過點(diǎn)曲線,給定的數(shù)據(jù)點(diǎn)Pi(i=0,1,…,n-1)是曲線上的點(diǎn)。由曲線方程知,必須先計(jì)算出節(jié)點(diǎn)參數(shù),再計(jì)算基函數(shù)Ni,K(u)的值,代入曲線方程,才能反算出控制多邊形的頂點(diǎn):

n個(gè)數(shù)據(jù)點(diǎn),反求出n+2個(gè)控制頂點(diǎn),畫n-1段曲線,需n個(gè)節(jié)點(diǎn)參數(shù);首尾各添加3個(gè)節(jié)點(diǎn)參數(shù),一共需要n+6個(gè)節(jié)點(diǎn)參數(shù)值;在曲線首端重3段曲線首段的長度,在曲線的末端重3段曲線末段的長度。所有節(jié)點(diǎn)參數(shù)為:

U0=0<U1<U2<UK<UK+1<…<Un+2<Un+3<Un+4<Un+5=1i=1,2,……,n+5,L為包含附加段在內(nèi)的總長。(2)過點(diǎn)三次非均勻B樣條曲線2023/2/2132根據(jù)節(jié)點(diǎn)矢量計(jì)算基函數(shù)Ni,K(u)的值,代入曲線方程可以計(jì)算n個(gè)已知的曲線上的點(diǎn),得如下方程:

寫成矩陣形式如下:

對(duì)于開口曲線,d0=P0,dn+1=Pn-1,上述方程組是“追趕法”能夠求解的三對(duì)角方程。求出d0,d1,……,dn,dn+1共n+2個(gè)控制頂點(diǎn),即可以畫出n-1曲線。(閉合曲線省略)2023/2/2133wi,i=0,1,…,n稱為權(quán)因子;Ni,K(u)是B樣條的基函數(shù)

有理B樣條曲線非均勻B樣條考慮節(jié)點(diǎn)分布不勻稱的影響,但與所有已介紹的計(jì)算曲線一樣,非均勻B樣條不能精確表達(dá)二次曲線曲面,采用有理B樣條,可以統(tǒng)一表達(dá)自由曲線曲面和二次曲線曲面。

有理B樣條曲線的表達(dá)式為:

當(dāng)Ni,K(u)是均勻基函數(shù)時(shí),p(u)為均勻有理B樣條曲線;當(dāng)Ni,K(u)是非均勻基函數(shù)時(shí),p(u)為非均勻有理B樣條

(Non-UniformRationalB-Spline,簡稱NURBS)曲線;通過合理的定義權(quán)系數(shù),NURBS曲線能夠精確地描述二次圓錐曲線。目前已納入到產(chǎn)品形狀定義的工業(yè)標(biāo)準(zhǔn)之中。2023/2/2134曲線設(shè)計(jì)方法的關(guān)鍵在于基函數(shù)的選擇,選擇合適的基函數(shù)能夠使系數(shù)矢量具有更明確的幾何意義,繪圖操作簡單直觀?;瘮?shù)和參數(shù)化方法的選擇對(duì)曲線的精度、光順性、局部修改性具有決定性的影響。整個(gè)曲線設(shè)計(jì)方法的改進(jìn)方向是在提高精度、保證光順性的同時(shí)追求靈活的操作、明確的幾何意義和良好的局部修改性。

曲線設(shè)計(jì)結(jié)論:2023/2/21357.6用OpenGL生成曲線和曲面

OpenGL中繪制Bezier曲線曲面是通過定值器完成的。(參考/OpenGL/credbook/evaluator.html

)1.定義定值器

指定定值器類型,每個(gè)方向的起止范圍、次數(shù)(控制點(diǎn)數(shù)),每個(gè)方向步進(jìn)一個(gè)單位對(duì)應(yīng)的浮點(diǎn)值個(gè)數(shù),控制點(diǎn)清單。如glMap1f(GL_MAP1_VERTEX_3,0.0,1.0,3,4,&ctrlpoints[0][0]);2.打開定值器voidglEnable(定值器類型);3.引用定值器

glEvalCoord(Ui,Vi);

當(dāng)前生成的點(diǎn)的值域注意與1.中取得一致,如果總的值域?yàn)閇0,1],則100個(gè)點(diǎn)組成的曲線上第i點(diǎn)的值域?yàn)?1-0)*i/100。2023/2/2136用OpenGL生成NURBS曲線和曲面

在OpenGL中,GLU函數(shù)庫提供了一個(gè)NURBS接口。用戶需要提供的數(shù)據(jù)包括控制點(diǎn)、節(jié)點(diǎn)等數(shù)據(jù),控制點(diǎn)描述曲線的大致形狀,節(jié)點(diǎn)控制B樣條函數(shù)的形狀。繪制一條NURBS曲線的步驟:(1)提供控制點(diǎn)序列和節(jié)點(diǎn)序列;(2)創(chuàng)建一個(gè)NURBS對(duì)象,設(shè)置NURBS對(duì)象屬性;(3)繪制曲線;參考/ArticleShow.asp?id=4539&categoryid=8創(chuàng)建一個(gè)NURBS對(duì)象,用如下兩條語句:

GLUnurbsObj*theNurbs;

theNurbs=gluNewNurbsRender();2023/2/2137用OpenGL生成一條NURBS曲線(續(xù))創(chuàng)建對(duì)象后,用如下函數(shù)設(shè)置NURBS對(duì)象屬性:voidgluNurbsProperty(GLUnurbsObj*nobj,GLenumproperty,Glfloatvalue);曲線的繪制是在gluBeginCurve()/gluEndCurve()函數(shù)對(duì)中完成。繪制曲線的函數(shù)為:voidgluNurbsCu

溫馨提示

  • 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)論