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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

矢量方程為:三維空間曲線的參數(shù)方程為:2024/5/116用s表示曲線的弧長,以弧長為參數(shù)的曲線方程稱為自然參數(shù)方程。以弧長為參數(shù)的曲線,其切矢為單位矢量,記為t(s)。切矢t(s)對弧長s求導,所得導矢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)對弧長的轉(zhuǎn)動率。撓率

的絕對值等于副法線方向b(s)(或密切平面)對于弧長的轉(zhuǎn)動率.曲率和撓率)(ssTD+)(sTTDO

曲率和撓率(a)(b)1N1B1T0N0B0T0B1BqDqD2024/5/1182.曲面的表示形式一般曲面可表示為:

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

曲面的矢量方程為:

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

u映射空間域參數(shù)域v2024/5/119r對

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

一階偏導數(shù)ru(u,v)和rv(u,v)繼續(xù)對u,v求偏導數(shù),得到四個二階偏導數(shù)ruu、ruv、rvu、rvv:ruv和rvu稱為二階混合偏導數(shù),在二階連續(xù)時,兩者相同。2024/5/1110rvnruZvv3v2v1v0OuYXr(u,v)圖7-3空間曲面

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

直紋面

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

雙線性插值曲面

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

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

Coons曲面(麻省理工學院)2024/5/1113

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

張量積曲面2024/5/1114

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

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

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

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

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

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

位置連續(xù)是C0連續(xù)。2024/5/11272)

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

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

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

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

冪基

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

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

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

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

低次多項式組合曲線以三次多項式為例:2024/5/1134y1(x)=a1+b1x+c1x2+d1x3y2(x)=a2+b2x+c2x2+d2x3y3(x)=a3+b3x+c3x2+d3x3“線動成面”

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

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

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

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

推導:幾何形式對三次參數(shù)曲線,若用其端點位矢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ù)特點分析:1.可以局部調(diào)整,因為每個曲線段僅依賴于端點約束。2.Hermite曲線具有幾何不變性2024/5/1148Bézier曲線是法國雷諾汽車公司的工程師Bézier于1962年提出。1972年在UNISURF系統(tǒng)中正式投入使用。Bézier曲線采用一組特殊的基函數(shù),使得基函數(shù)的系數(shù)具有明確的幾何意義。其曲線方程:

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

P0P1P2P3Pi為絕對位置矢量B0,3(t)B1,3(t)B3,3(t)B2,3(t)三次基函數(shù)的圖像2024/5/1151三次Bezier曲線的矩陣表示取為幾何矩陣GBEZ取為基矩陣MBEZ2024/5/1152注意:有的教材中三次Bézier曲線的矩陣表示形式為:三次Bézier曲線:2024/5/1153曲線的生成:參數(shù)離散計算型值點連接型值點折線2024/5/1154#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];/*將曲線的起點賦給矢量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曲線2024/5/1155Bezier曲線的性質(zhì)端點位置2024/5/1156端點切矢量

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

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

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

如果控制多邊形是凸的, 則Bezier曲線也是凸的。2024/5/1162擬局部性局部性:其含義是指移動一個控制點,它只影響曲線的某個局部。Bezier曲線不具備局部性的性質(zhì),但它具有擬局部性。擬局部性:指的是移動一個控制點Pi

時,對應參數(shù)t=i/n的曲線上的點變動最大,遠離i/n的曲線上的點變動越來越小。2024/5/1163形狀的易控性控制多邊形大致上勾畫了Bezier曲線的形狀,要改變曲線只要改變頂點的位置即可。因此Bezier曲線的人機交互與形狀控制比較容易。2024/5/1164單一Bézier曲線不能滿足描述復雜形狀的要求,必須采用組合Bézier曲線。P0P1P2P3組合Bézier曲線示意圖Bézier曲線的特點參數(shù)連續(xù)是對曲線光順性的過分要求,在組合曲線的連接點處,參數(shù)連續(xù)不僅要求切矢具有共同的切矢方向,而且要求切矢模長相等。幾何連續(xù)只要求在連接點處切矢方向相同,切矢模長可以不相等,由此產(chǎn)生了不同控制手段的多種曲線,如Gamma(

)樣條曲線、Beta(

)樣條曲線等,給曲線設(shè)計提供了極大的靈活性。2024/5/1165若要組合Bézier曲線在連接點處具有一定的連續(xù)性,構(gòu)成曲線的位置點矢量之間存在約束條件,可用Bézier曲線方程的一階、二階導數(shù)推導。Bézier曲線的優(yōu)點是具有明確的幾何意義,給定數(shù)據(jù)點的控制多邊形確定曲線的形狀,在設(shè)計過程中具有很強的可操作性。對于局部參數(shù)的Bézier曲線,當弦長差異較大時,弦長較長的那段曲線過分平坦,弦長較短的那段曲線則鼓得厲害。P0P1P2P3組合Bézier曲線示意圖7.6.5Bezier曲線的遞推(deCasteljau)算法

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

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

0P1P2P11P10P20PBezier曲線上的點

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

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

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

)3/1(30PP=011/3

幾何作圖法求Bezier曲線

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

增加一個頂點后,仍定義同一條曲線的新控制頂點為,則有:

對上式左邊乘以,得到:

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

化簡即得:

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

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

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

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

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

2024/5/1180Bézier曲面片的矩陣表達式rijuv2024/5/1181用Bézier曲面片組合曲面時,曲面拼合處應位置連續(xù),即要求:r1(1,v)=r2(0,v)(上標表示曲面片1或曲面片2)[1111]AM1AT=[1000]AM2AT

C0連續(xù)的Bézier組合曲面(位置連續(xù))2024/5/1182C0連續(xù)的Bézier曲面片的拼接曲面片1曲面片22024/5/1183若要得到跨界一階導矢的連續(xù)性,對于0≤v≤1,曲面片1在u=1的切平面和曲面片2在u=0處的切平面重合,曲面的法矢在跨界處連續(xù),即:

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

因為令C1連續(xù)的Bézier組合曲面(導矢連續(xù))可以得到組合曲面所有等v線的梯度連續(xù)的矩陣表示。

2024/5/11842024/5/1185取λ(ν)=λ,得到表明跨界的四對棱邊必須共線。

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

K次規(guī)范B樣條基函數(shù)Ni,K(t)(i=0,1,…,n)定義如下:ti(i=0,1,…,n)是對應于給定數(shù)據(jù)點的節(jié)點參數(shù)。7.4B樣條曲線和曲面2024/5/11880次(1階)B-樣條曲線K=0時的B-樣條基函數(shù)2024/5/11890次B-樣條曲線示例2024/5/11901次(2階)B-樣條基函數(shù)K=1時的基函數(shù)2024/5/1191K=1時定義的曲線示例2024/5/11922次(3階)B-樣條基函數(shù)K=2時的基函數(shù)2024/5/1193續(xù)前頁:2024/5/1194續(xù)前頁:2024/5/1195續(xù)前頁:2024/5/1196續(xù)前頁:2024/5/11973階B-樣條基函數(shù)圖形2024/5/1198[t0,t1][t1,t2][t2,t3][t3,t4][t4,t5]區(qū)間1階基函數(shù)2階基函數(shù)3階基函數(shù)4階基函數(shù)5階基函數(shù)節(jié)點矢量:由于每個基函數(shù)Ni,k需要的支撐區(qū)間是[ti,ti+k+1],考慮基函數(shù)的下標從0開始到n,所以節(jié)點矢量為[t0,tn+k+1]。遞推計算2024/5/1199B-樣條曲線的定義共n-k+2段有效區(qū)間:[ti,ti+1]區(qū)間上定義k個非零基函數(shù)(Ni-k+1,k~Ni,k)

因此,有效區(qū)間的下標應滿足i>=k-1;與控制點對應,有效基函數(shù)下標應滿足:i<=n。故:總有效區(qū)間為[tk-1,tn+1]。2024/5/111003階B樣條曲線示例T=[t0,t1,…,tn+1,tn+2,tn+3]2024/5/11101B-樣條基函數(shù)的性質(zhì)局部性權(quán)性連續(xù)性2024/5/11102B-樣條基函數(shù)的局部性在每一個區(qū)間上至多只有k個基函數(shù)非零,它們是:2024/5/11103B-樣條基函數(shù)的權(quán)性上式右端根據(jù)遞推公式展開并化簡得到:2024/5/11104B-樣條基函數(shù)的連續(xù)性2024/5/11105B-樣條曲線的分類根據(jù)節(jié)點矢量的不同形式分類均勻B樣條曲線準均勻B樣條曲線分段Bezier曲線非均勻B樣條曲線采用均勻節(jié)點矢量,即所有節(jié)點區(qū)間長度為大于0的常數(shù),這樣的節(jié)點矢量定義了均勻B-樣條基,從而定義出均勻B-樣條曲線。當節(jié)點矢量在首末端點處有K重重復度,而在內(nèi)部為均勻分布時,可定義準均勻B-樣條曲線。節(jié)點矢量在首末端點處有K重重復度,而在內(nèi)部為非均勻分布。2024/5/11106均勻B-樣條曲線均勻節(jié)點矢量均勻B-樣條基均勻B-樣條曲線2024/5/11107例:三次均勻B樣條曲線(1)2024/5/11108三次均勻B樣條曲線(2)2024/5/11109基函數(shù)的平移性三次均勻B樣條曲線(3)1階基函數(shù)2階基函數(shù)2024/5/11110三次均勻B樣條曲線(4)2024/5/11111三次均勻B樣條曲線(5)由前面推導過程得到:2024/5/11112三次均勻B樣條曲線(6)2024/5/11113三次均勻B樣條曲線(7)2024/5/11114三次均勻B樣條曲線(8)2024/5/11115三次均勻B樣條曲線(9)上式即為區(qū)間[tj,tj+1]上3次均勻B樣條曲線的矩陣表達式。2024/5/11116P(3)P(4)P(5)2024/5/11117當K=3,且采用均勻參數(shù)化時,得到三次均勻B樣條曲線:7.4.1均勻B樣條曲線2024/5/11118在分段連接點處B樣條曲線的值和導矢量為:

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

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

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

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

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

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

給定16個頂點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(圖中虛線);2024/5/11124均勻B樣條曲面(續(xù))參數(shù)v在[0,1]之間取值vk,對應于vk,曲線C1、C2、C3和C4上可得到V1k、V2k、V3k和V4k四個點,該四點構(gòu)成u向的一個特征多邊形,定義一條新的曲線P(u,vk);uvC4C3C1C2V1kV3kV4kV2k當參數(shù)vk在[0,1]之間取不同值時,P(u,vk)沿如圖所示的黃色箭頭方向掃描,即得到由給定特征網(wǎng)格dij(i=1,2,3,4;j=1,2,3,4)定義的雙三次均勻B樣條曲面片P(u,v)。2024/5/11125

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

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

非均勻B樣條曲線的實現(xiàn)2024/5/11128

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

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

n個數(shù)據(jù)點,反求出n+2個控制頂點,畫n-1段曲線,需n個節(jié)點參數(shù);首尾各添加3個節(jié)點參數(shù),一共需要n+6個節(jié)點參數(shù)值;在曲線首端重3段曲線首段的長度,在曲線的末端重3段曲線末段的長度。所有節(jié)點參數(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)過點三次非均勻B樣條曲線2024/5/11132根據(jù)節(jié)點矢量計算基函數(shù)Ni,K(u)的值,代入曲線方程可以計算n個已知的曲線上的點,得如下方程:

寫成矩陣形式如下:

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

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

有理B樣條曲線的表達式為:

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

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

曲線設(shè)計結(jié)論:2024/5/111357.6用OpenGL生成曲線和曲面

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

)1.定義定值器

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

glEvalCoord(Ui,Vi);

當前生成的點的值域注意與1.中取得一致,如果總的值域為[0,1],則100個點組成的曲線上第i點的值域為(1-0)*i/100。2024/5/11136用OpenGL生成NURBS曲線和曲面

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

GLUnurbsObj*theNurbs;

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

溫馨提示

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

評論

0/150

提交評論