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

下載本文檔

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

文檔簡介

1、前前 言言n上講內(nèi)容回顧上講內(nèi)容回顧n三維建模方法三維建模方法n三維觀察與剪裁三維觀察與剪裁n三維幾何變換(平移、旋轉(zhuǎn)、縮放、錯切、復(fù)合變換)三維幾何變換(平移、旋轉(zhuǎn)、縮放、錯切、復(fù)合變換)n三維觀察變換(指定觀察坐標(biāo)系、投影變換、定義觀察體)三維觀察變換(指定觀察坐標(biāo)系、投影變換、定義觀察體)nOpenGL中的觀察轉(zhuǎn)換中的觀察轉(zhuǎn)換n定義視點(diǎn)定義視點(diǎn)gluLookAt()n定義視景體定義視景體glFrustum()、 gluPerspective()、 glOrtho()n定義視口定義視口glViewport() n切割視景體切割視景體(3)參數(shù)曲線曲面)參數(shù)曲線曲面Introduction

2、of Computer Graphics第三章第三章 模型及變換模型及變換Introduction of Computer GraphicsIntroduction of Computer Graphics肖雙九 上海交通大學(xué)數(shù)字藝術(shù)實(shí)驗(yàn)室本講內(nèi)容本講內(nèi)容n曲線的表示及繪制曲線的表示及繪制n參數(shù)曲線基礎(chǔ)知識參數(shù)曲線基礎(chǔ)知識n常用參數(shù)曲線常用參數(shù)曲線nOpenGL中曲線的繪制中曲線的繪制n曲面的表示及繪制曲面的表示及繪制n常用參數(shù)曲面常用參數(shù)曲面nOpenGL中曲線曲面的繪制中曲線曲面的繪制前言前言n對于具體的應(yīng)用,使用一個緊湊的曲線曲面表對于具體的應(yīng)用,使用一個緊湊的曲線曲面表示的優(yōu)點(diǎn):示的優(yōu)

3、點(diǎn):n它們有比多邊形集合更加緊湊的表達(dá)式,對它們有比多邊形集合更加緊湊的表達(dá)式,對于模型的保存,可以節(jié)省存儲空間。于模型的保存,可以節(jié)省存儲空間。n使用少量的控制多邊形就能得到比直線和平使用少量的控制多邊形就能得到比直線和平面多邊形更加光滑更加連續(xù)的圖形。面多邊形更加光滑更加連續(xù)的圖形。n對于一個函數(shù)曲面的變換比對多邊形網(wǎng)格表對于一個函數(shù)曲面的變換比對多邊形網(wǎng)格表示的曲面的變換的復(fù)雜度更小。示的曲面的變換的復(fù)雜度更小。前言前言n對于具體的應(yīng)用,使用一個緊湊的曲線對于具體的應(yīng)用,使用一個緊湊的曲線曲面表示的優(yōu)點(diǎn):曲面表示的優(yōu)點(diǎn):n可以很容易生成模型的可以很容易生成模型的LOD結(jié)構(gòu)。因而在實(shí)結(jié)構(gòu)。

4、因而在實(shí)時繪制時根據(jù)實(shí)際情況提高繪制質(zhì)量或者提時繪制時根據(jù)實(shí)際情況提高繪制質(zhì)量或者提高幀速率。高幀速率。n動畫中,曲面只有少量的點(diǎn)需要進(jìn)行變換。動畫中,曲面只有少量的點(diǎn)需要進(jìn)行變換。這些變換后的點(diǎn)再形成一張新的光滑曲面。這些變換后的點(diǎn)再形成一張新的光滑曲面。n對于碰撞檢測,更加有效更加精確。對于碰撞檢測,更加有效更加精確。n可以使實(shí)時計算機(jī)圖形應(yīng)用更快速,編碼更可以使實(shí)時計算機(jī)圖形應(yīng)用更快速,編碼更快速,生存期更長??焖伲嫫诟L。一、曲線的表示和繪制一、曲線的表示和繪制1.1 曲線曲面參數(shù)化表示基礎(chǔ)曲線曲面參數(shù)化表示基礎(chǔ)n1.1.1 顯示、隱式和參數(shù)表示顯示、隱式和參數(shù)表示n 顯式表示顯式

5、表示平面曲線顯式方程的一般形式為平面曲線顯式方程的一般形式為 因?yàn)橐粋€因?yàn)橐粋€y值只能對應(yīng)一個值只能對應(yīng)一個x值,因此顯式方程不能值,因此顯式方程不能表示封閉或多值的曲線,例如表示封閉或多值的曲線,例如( )yf xxyx1x2x3x4x5x6xyxy1y2n隱式表示隱式表示平面曲線隱式方程的一般形式為平面曲線隱式方程的一般形式為例如一個圓錐曲線的二階隱式方程可寫成例如一個圓錐曲線的二階隱式方程可寫成( , )0f x y 222220axbxycydxeyf圓橢圓拋物線雙曲線n非參數(shù)表示的問題非參數(shù)表示的問題n與坐標(biāo)軸相關(guān)與坐標(biāo)軸相關(guān)n會出現(xiàn)斜率為無窮大的情況(如垂線)會出現(xiàn)斜率為無窮大的情

6、況(如垂線)n非平面的曲線,系數(shù)不是常量非平面的曲線,系數(shù)不是常量n不便于計算和編程不便于計算和編程n 參數(shù)表示參數(shù)表示平面曲線參數(shù)方程的一般形式為平面曲線參數(shù)方程的一般形式為通常將參數(shù)通常將參數(shù)規(guī)格化到規(guī)格化到0,1之間,只研究這一個之間,只研究這一個區(qū)間中的參數(shù)曲線區(qū)間中的參數(shù)曲線 ( )( )xx tyy tn 參數(shù)表示參數(shù)表示例如,直線的兩端點(diǎn)分別為例如,直線的兩端點(diǎn)分別為p1 (1,2)和和p2 (4,3)其其參數(shù)方程為參數(shù)方程為 當(dāng)當(dāng) p=p1時,時,t=0 p=p2時,時,t=1 寫成分量參數(shù)方程形式為寫成分量參數(shù)方程形式為121( )()p tppp tp1p2xyp12112

7、1()()1 3()()2xtxxx ttytyyy tt n 參數(shù)表示參數(shù)表示一個以坐標(biāo)原點(diǎn)為圓心半徑為一個以坐標(biāo)原點(diǎn)為圓心半徑為r的圓的圓其其參數(shù)方程可表示為參數(shù)方程可表示為 參數(shù)參數(shù)u是一個規(guī)格化了的角度參數(shù)是一個規(guī)格化了的角度參數(shù) 當(dāng)圓上某一點(diǎn)與原點(diǎn)的連線與當(dāng)圓上某一點(diǎn)與原點(diǎn)的連線與x軸正向的夾軸正向的夾 角角 從從0變化到變化到2 ,就繪制出了整個圓,因此,就繪制出了整個圓,因此 u= /2 當(dāng)當(dāng) =0,參數(shù),參數(shù) u=0; = 2 ,參數(shù),參數(shù) u=1; = /2 ,參數(shù),參數(shù) u=1/4; = ,參數(shù),參數(shù) u=1/2;( )cos(2)( )sin(2)01x uruy uru

8、uxy x(u), y(u)n參數(shù)表示的優(yōu)點(diǎn)參數(shù)表示的優(yōu)點(diǎn)(1)n有更大的自由度來控制曲線、曲面形狀有更大的自由度來控制曲線、曲面形狀 例如,一個二維三次曲線的顯式方程為例如,一個二維三次曲線的顯式方程為 有有4個系數(shù)可以用來控制曲線形狀,個系數(shù)可以用來控制曲線形狀, 而其參數(shù)表達(dá)式為而其參數(shù)表達(dá)式為 有有8個系數(shù)可以用來控制曲線形狀個系數(shù)可以用來控制曲線形狀32yaxbxcxd3232xatbtctdyetftgthn參數(shù)表示的優(yōu)點(diǎn)參數(shù)表示的優(yōu)點(diǎn)(2)n易于用矢量和矩陣表示幾何分量,簡化計算易于用矢量和矩陣表示幾何分量,簡化計算n非參數(shù)方程的幾何變換要通過對所有型值點(diǎn)進(jìn)行變非參數(shù)方程的幾何變

9、換要通過對所有型值點(diǎn)進(jìn)行變換來實(shí)現(xiàn),而參數(shù)方程可以直接進(jìn)行變換換來實(shí)現(xiàn),而參數(shù)方程可以直接進(jìn)行變換;323232xxxxyyyyzzzzxa tb tc tdya tb tc tdza tbtc td321xxxxyyyyzzzztabcdxtyabcdtzabcd 三次Hermite參數(shù)曲線n參數(shù)表示的優(yōu)點(diǎn)參數(shù)表示的優(yōu)點(diǎn)(3)n便于處理斜率為無窮大的問題,不會出現(xiàn)計算中便于處理斜率為無窮大的問題,不會出現(xiàn)計算中斷斷; 平面直線顯式方程平面直線顯式方程 非參數(shù)方程無法表示非參數(shù)方程無法表示 x = c(常數(shù))常數(shù)) 的直線,因?yàn)榇藭r的直線,因?yàn)榇藭rdx=0,斜率斜率k為無窮為無窮 大;而用參數(shù)

10、方程就可以直接表示。大;而用參數(shù)方程就可以直接表示。 ykxbxybdy(x,y)dykdxdxn參數(shù)表示的優(yōu)點(diǎn)參數(shù)表示的優(yōu)點(diǎn)(4)n參數(shù)方程對變量個數(shù)不限,從而可以很方便地參數(shù)方程對變量個數(shù)不限,從而可以很方便地把低維曲線曲面擴(kuò)展到高維空間中去把低維曲線曲面擴(kuò)展到高維空間中去; 例如一條二維三次參數(shù)曲線例如一條二維三次參數(shù)曲線3232xxxxyyyyxa tb tc tdya tb tc td32320 xxxxyyyyxa tb tc tdya tb tc tdz擴(kuò)展到三維的參數(shù)表達(dá)式為擴(kuò)展到三維空間,就可以做三維的變換或其他計算n參數(shù)表示的優(yōu)點(diǎn)參數(shù)表示的優(yōu)點(diǎn)(5)n0,1之間規(guī)格化的參數(shù)

11、,使其相應(yīng)的幾何分量之間規(guī)格化的參數(shù),使其相應(yīng)的幾何分量是有界的,不需要另外的參數(shù)定義其邊界是有界的,不需要另外的參數(shù)定義其邊界。 例如前例中直線段的參數(shù)方程例如前例中直線段的參數(shù)方程 自然表示出端點(diǎn)為自然表示出端點(diǎn)為 (1,2)和和(3,4),如果是顯式,如果是顯式方程,還要專門說明兩端點(diǎn)的位置,否則直線方方程,還要專門說明兩端點(diǎn)的位置,否則直線方程程 表示的是一條無限的直線而不是表示的是一條無限的直線而不是線段線段。( )1 3( )2x tty tt 1(5)3yx1.2 參數(shù)曲線的定義及相關(guān)基本概念參數(shù)曲線的定義及相關(guān)基本概念n三維參數(shù)曲線的一般表達(dá)式三維參數(shù)曲線的一般表達(dá)式n基本概念

12、基本概念n位置矢量位置矢量 曲線上任意一點(diǎn)的位置矢量曲線上任意一點(diǎn)的位置矢量p(t) ( ) , ( ) , ( ) , 01xx tyy tzz tt ( ) ( ), ( ), ( )p tx ty tz txyzt=0t=1P(t)P1P0n切矢量切矢量T 曲線上兩點(diǎn)曲線上兩點(diǎn)r和和Q的參數(shù)分別為的參數(shù)分別為t和和 t+ t r和和Q兩點(diǎn)之間的弦長兩點(diǎn)之間的弦長 當(dāng)當(dāng)r和和Q之間的弧長之間的弧長 c0時,時, pc, 曲線在該點(diǎn)處的單位切矢量曲線在該點(diǎn)處的單位切矢量切矢量切矢量dp/dt 僅與僅與T成比例成比例 若切矢量數(shù)值遠(yuǎn)遠(yuǎn)超過曲線弦長的幾若切矢量數(shù)值遠(yuǎn)遠(yuǎn)超過曲線弦長的幾 倍,曲線會

13、出現(xiàn)倍,曲線會出現(xiàn)回轉(zhuǎn)現(xiàn)象回轉(zhuǎn)現(xiàn)象 = ()( )p p ttp txyzP0P1t=0t=1cpP(t)rP(t+t)QTd /dpcTn 基本概念基本概念n曲率曲率k 表示曲線在該點(diǎn)處的彎曲程度表示曲線在該點(diǎn)處的彎曲程度 當(dāng)當(dāng)Q趨向于趨向于r,即,即 c0時,時,0lim |/|T/ckcddc xyzP0P1c=0c=1cP(c)rP(c+c)Q T( ), ( )p ckp c因?yàn)樗?1 k曲率半徑可以看作在該點(diǎn)處,有一個半徑為可以看作在該點(diǎn)處,有一個半徑為 的密切圓內(nèi)切于該點(diǎn),曲率半的密切圓內(nèi)切于該點(diǎn),曲率半徑就為徑就為 ,曲率為,曲率為1/k,密切圓的圓心稱為,密切圓的圓心稱為“

14、曲率中心曲率中心”n主法矢主法矢N和副法矢和副法矢B 垂直于切矢量垂直于切矢量T的矢量都是法矢量,構(gòu)成的矢量都是法矢量,構(gòu)成法平面法平面 其中指向曲率中心的單位法矢量稱為單位主法矢其中指向曲率中心的單位法矢量稱為單位主法矢N 單位副法矢單位副法矢BT N T和和N構(gòu)成構(gòu)成密切平面密切平面 N和和B構(gòu)成構(gòu)成法平面法平面 B和和T構(gòu)成構(gòu)成化直平面化直平面n 基本概念基本概念xyzP0P1c=0c=1TBN法平面密切平面化直平面n 基本概念基本概念n擾率擾率 表示曲線在該點(diǎn)處的扭出其密切平面的速率表示曲線在該點(diǎn)處的扭出其密切平面的速率 當(dāng)當(dāng)Q趨向于趨向于r,即,即 c0時,時,0lim |/|B/c

15、cddc cxyzP0P1c=0c=1P(c)rP(c+c)QB(c+c)B(c+c)B(c)n 基本術(shù)語基本術(shù)語n樣條樣條 SplineA traditional spline used for drawing smooth curves. The wooden spline is bent into shape using spline weights.n 基本術(shù)語基本術(shù)語n插值插值n插值的概念插值的概念 給定函數(shù)給定函數(shù) f(x)在區(qū)間在區(qū)間a,b上上n個不同的值個不同的值f(xi) , i=1,2,3,n,尋找某一函數(shù),尋找某一函數(shù) (x)逼近逼近f(x), (xi)=f(xi) (x

16、)就稱為插值函數(shù),也稱就稱為插值函數(shù),也稱插值樣條曲線插值樣條曲線, xi為插為插值節(jié)點(diǎn);值節(jié)點(diǎn); xyx1x2x3xn (x)f(x)n線性插值線性插值給定兩點(diǎn)給定兩點(diǎn)x1和和x2處的值處的值 用一個線性函數(shù)進(jìn)行插值用一個線性函數(shù)進(jìn)行插值 代入代入 (x)的表達(dá)式,可求出系數(shù)的表達(dá)式,可求出系數(shù)a和和bn 插值插值1122()()yf xyf x( )xaxb1122( ) , ()xyxy211121( )()yyxyxxxxxyx1x2f(x) (x)y1y2n 插值插值n二次插值二次插值需要知道函數(shù)需要知道函數(shù)f(x)上的三個點(diǎn)上的三個點(diǎn)x1、x2 和和x3的值的值y1、y2 和和y3

17、 用一個二次函數(shù)來插值用一個二次函數(shù)來插值 必須滿足方程組必須滿足方程組 求解出系數(shù)求解出系數(shù)a、b、c,就可以構(gòu)造,就可以構(gòu)造 出二次插值函數(shù)出二次插值函數(shù) (x)2( )xaxbxc112233() , () , ()xyxyxyxyx1x2f(x)x3y1y2y3 (x)n 逼近逼近n當(dāng)型值點(diǎn)太多時,很難構(gòu)造插值函數(shù)當(dāng)型值點(diǎn)太多時,很難構(gòu)造插值函數(shù)n選擇一個次數(shù)較低的函數(shù)選擇一個次數(shù)較低的函數(shù)F(x),最佳逼近這些型值點(diǎn),最佳逼近這些型值點(diǎn)n最小二乘逼近最小二乘逼近 構(gòu)造構(gòu)造F(x)使使 達(dá)到極小達(dá)到極小 也稱也稱F(x)為為逼近樣條逼近樣條xyx1x2x3xnf(x)F(x)21 (

18、)( ) nkiikid F xf xd,是權(quán)值n 光順光順n平面曲線的光順條件:平面曲線的光順條件:n(1) 具有二階幾何連續(xù)具有二階幾何連續(xù)G2n(2) 不存在多余的拐點(diǎn)不存在多余的拐點(diǎn)n(3) 曲率變化比較小曲率變化比較小 n曲線段之間的連續(xù)性曲線段之間的連續(xù)性n參數(shù)連續(xù)性參數(shù)連續(xù)性C和幾何連續(xù)性和幾何連續(xù)性Gn在結(jié)合點(diǎn)在結(jié)合點(diǎn)P處位置重合,稱為處位置重合,稱為C0和和G0連續(xù)連續(xù)n在點(diǎn)在點(diǎn)P處切矢量方向相同,大小相等處切矢量方向相同,大小相等C1連續(xù);連續(xù); 在點(diǎn)在點(diǎn)P處切矢量方向相同,大小不等處切矢量方向相同,大小不等G1連續(xù);連續(xù);n在點(diǎn)在點(diǎn)P處的處的n階導(dǎo)矢方向相同,大小相等階導(dǎo)

19、矢方向相同,大小相等C n連續(xù);連續(xù); 在點(diǎn)在點(diǎn)P處的處的n階導(dǎo)矢方向相同,大小不等階導(dǎo)矢方向相同,大小不等Gn連續(xù);連續(xù);Tp1Q1(t)Q2(t)PTp21.3 常用參數(shù)曲線常用參數(shù)曲線n 1.3.1 樣條曲線樣條曲線n樣條曲線的表示有三種等價的方式:樣條曲線的表示有三種等價的方式: (1) 列出一組在樣條邊界上的列出一組在樣條邊界上的邊界條件邊界條件; (2) 列出描述樣條特征的列出描述樣條特征的矩陣矩陣; (3) 列出一組列出一組調(diào)合函數(shù)調(diào)合函數(shù)(或(或基函數(shù)基函數(shù))。)。 nHermit三次樣條曲線三次樣條曲線三次參數(shù)曲線方程的一般矢量形式是三次參數(shù)曲線方程的一般矢量形式是32( )

20、uuuuPabcd2( )32uuuPabcnHermit三次樣條曲線三次樣條曲線設(shè)有設(shè)有n+1個形值點(diǎn)個形值點(diǎn)兩相鄰型值點(diǎn)兩相鄰型值點(diǎn)Pk和和Pk+1之間之間Hermit曲線的邊界條件是:曲線的邊界條件是:邊界條件的矩陣表示為邊界條件的矩陣表示為 11(0) , (1)(0) , (1)kkkkPPPPPPPPDDP(,) 0,1,2,.,kkkkxyzkn110001111100103210kkkkPP PabPcDdDnHermit三次樣條曲線三次樣條曲線系數(shù)矩陣求解得到系數(shù)矩陣求解得到 11112211332100101000kkkkHkkkkMPPPP aPPbPPcDDdDDHer

21、mit矩陣3232323211011213( )(231)( 23)P (2)P() ( )( )P( )P( )kkkkkkkkuuuuuuuuuuHuH uHuH uPPPDDPPDD矩陣相乘,得到調(diào)和函數(shù)表達(dá)式為4個調(diào)合函數(shù)個調(diào)合函數(shù)1.3.2 Bzier曲線曲線n 法國雷諾汽車公司的法國雷諾汽車公司的P.E.Bzier提出的一種以逼近提出的一種以逼近為基礎(chǔ)的參數(shù)曲線為基礎(chǔ)的參數(shù)曲線n Bzier曲線的定義曲線的定義用一組折線或稱做特征多邊形定義的,曲線和特征多邊形的起點(diǎn)與終點(diǎn)的位置重合,多邊形第一條邊和最后一條邊表示了曲線起點(diǎn)和終點(diǎn)的切矢量方向用一組折線或稱做控制多邊形Control

22、Polygon定義的,曲線和控制多邊形的起點(diǎn)與終點(diǎn)的位置重合,多邊形第一條邊和最后一條邊表示了曲線起點(diǎn)和終點(diǎn)的切矢量方向1.3.2 Bzier曲線曲線nn次次Bzier曲線上各點(diǎn)的插值公式為曲線上各點(diǎn)的插值公式為,0( )( )nii niC tPBt調(diào)合函數(shù),!( )(1)!()!in ii nnBttti ni控制頂點(diǎn)例如,三次Bzier曲線(n=3)的調(diào)和函數(shù)為32230,31,32,33,3( )(1) , ( )3 (1) , ( )3 (1) , ( )BttBtttBtttBtt則,三次Bzier曲線方程為32230123( )(1)3 (1)+3 (1)C ttPttPtt P

23、t P 1.3.2 Bzier曲線曲線nBzier曲線的調(diào)和函數(shù)曲線的調(diào)和函數(shù),!( )(1)!()!in ii nnBttti ni01tB0,3B1,3B2,3B3,330,3( )(1) Btt21,3( )3 (1) Bttt22,3( )3 (1) Bttt33,3( )Btt 1.3.2 Bzier曲線曲線n Bzier曲線的調(diào)和函數(shù)的性質(zhì)曲線的調(diào)和函數(shù)的性質(zhì)正性正性權(quán)性權(quán)性遞推性遞推性,( )0, 0,1 0,( )0, (0,1) 1,2,., -1i ni nBttinBttin,0( )1, (0,1)ni niBtt,11,1( )(1)( )( )i ni ninBtt

24、 BttBt 1.3.2 Bzier曲線曲線n Bzier曲線的性質(zhì)曲線的性質(zhì)曲線的起點(diǎn)與終點(diǎn)與控制多邊形的起點(diǎn)和終曲線的起點(diǎn)與終點(diǎn)與控制多邊形的起點(diǎn)和終點(diǎn)重合;點(diǎn)重合;曲線的兩端點(diǎn)處的切矢量方向與控制多邊形曲線的兩端點(diǎn)處的切矢量方向與控制多邊形的第一條和最后一條邊重合;的第一條和最后一條邊重合;對稱性。將控制頂點(diǎn)的順序反向,得到的曲對稱性。將控制頂點(diǎn)的順序反向,得到的曲線形狀不變,方向相反;線形狀不變,方向相反;凸包性。曲線總落在控制多邊凸包性。曲線總落在控制多邊 形的凸包中;形的凸包中;變差縮減性。曲線的波動比控制多邊形小。變差縮減性。曲線的波動比控制多邊形小。P0P1P2P3T0T3 1

25、.3.2 Bzier曲線曲線n Bzier曲線的繪制算法曲線的繪制算法 分割遞推分割遞推Casteljau算法(這里以三次曲線為例)算法(這里以三次曲線為例) 計算曲線上對應(yīng)參數(shù)計算曲線上對應(yīng)參數(shù)t 的點(diǎn)的位置的點(diǎn)的位置C(t) 1001(1)Pt PtPP0P1P2P3P01C(t)P11P21P02P12P30P01C(t)P11P21P02P12P301112(1)Pt PtP211112(1)Pt PtP211001(1)Pt PtP1223(1)Pt PtP322001(1)Pt PtP 1.3.2 Bzier曲線曲線n 推廣到推廣到n次的次的Bzier曲線曲線Casteljau遞推

26、公式為遞推公式為n Bzier曲線的設(shè)計技術(shù)曲線的設(shè)計技術(shù)三個控制頂點(diǎn),生成拋物線,四個控制頂點(diǎn)生成三次曲三個控制頂點(diǎn),生成拋物線,四個控制頂點(diǎn)生成三次曲線,以此類推;線,以此類推;退化形式退化形式 共線的控制頂點(diǎn)生成直線段的共線的控制頂點(diǎn)生成直線段的Bzier曲線;曲線; 一組重合的控制點(diǎn)生成一個點(diǎn)的一組重合的控制點(diǎn)生成一個點(diǎn)的Bzier曲線;曲線;1( )(1)( )( )1,2,., , 0,1,., , (0,1)rr ir iiiiP tt PttPtrninrt 1.3.2 Bzier曲線曲線n Bzier曲線的設(shè)計技術(shù)曲線的設(shè)計技術(shù)將第一個和最后一個控制頂點(diǎn)重合,可得到封閉的將第

27、一個和最后一個控制頂點(diǎn)重合,可得到封閉的Bzier曲線;曲線;多個控制點(diǎn)在某位置重合,多個控制點(diǎn)在某位置重合,Bzier曲線會更靠近該位置;曲線會更靠近該位置;使用任何數(shù)目的控制點(diǎn)擬合使用任何數(shù)目的控制點(diǎn)擬合Bzier曲線,復(fù)雜曲線可以用幾個低曲線,復(fù)雜曲線可以用幾個低次的次的Bzier曲線段拼接曲線段拼接P0P1P2P3P4P5P0P2P1P3P4Q0Q1Q2Q3 1.3.2 Bzier曲線曲線n Bzier曲線的設(shè)計技術(shù)曲線的設(shè)計技術(shù) Bzier曲線段拼接的連續(xù)性問題曲線段拼接的連續(xù)性問題 0階連續(xù)性:只要兩控制多邊形端點(diǎn)連續(xù),:只要兩控制多邊形端點(diǎn)連續(xù), 相鄰相鄰Bzier曲線段之曲線段

28、之間自然達(dá)到間自然達(dá)到C0和和G0連續(xù);連續(xù); 1階連續(xù)性:回顧連續(xù)性的定義回顧連續(xù)性的定義充要條件充要條件:Pn-1、Pn=Q0、Q1三點(diǎn)三點(diǎn)共線,可達(dá)到共線,可達(dá)到G1連續(xù);連續(xù);若使得若使得T1=T2,達(dá)到,達(dá)到C1連續(xù);連續(xù); Pn-3Pn-2Pn-1PnT1T2 1.3.2 Bzier曲線曲線n Bzier曲線的設(shè)計技術(shù)曲線的設(shè)計技術(shù) Bzier曲線段拼接的連續(xù)性問題曲線段拼接的連續(xù)性問題 2階連續(xù)性:在:在1階連續(xù)的前提下,滿足兩個附加條件:拼接點(diǎn)階連續(xù)的前提下,滿足兩個附加條件:拼接點(diǎn)處的密切平面重合;曲率相等處的密切平面重合;曲率相等 ,可,可達(dá)到達(dá)到C2連續(xù);連續(xù); 1.3.

29、2 Bzier曲線曲線n n次次Bzier曲線的升階曲線的升階n通過增加控制頂點(diǎn),不改變曲線形狀,實(shí)現(xiàn)通過增加控制頂點(diǎn),不改變曲線形狀,實(shí)現(xiàn)對曲線更靈活的控制;對曲線更靈活的控制;(1)1 (1) 110,1,.,1iiiiiPPPnninP0P1P2P3P0(1)=P1(1)P2(1)P3(1)P4(1)=(1)1011344PPP(1)2121122PPP(1)00PP(1)43PP(1)3233144PPP 1.3.2 Bzier曲線曲線n Bzier曲線的升階曲線的升階n新的控制頂點(diǎn)是原來控制多邊形在參數(shù)新的控制頂點(diǎn)是原來控制多邊形在參數(shù)i/(n+1)處的線性插值;處的線性插值;n升階

30、后的新控制多邊形在原來的控制多升階后的新控制多邊形在原來的控制多邊形的凸包內(nèi);邊形的凸包內(nèi);n升階后的控制多邊形更靠近升階后的控制多邊形更靠近Bzier曲線曲線 1.3.2 Bzier曲線曲線n 有理有理Bzier曲線曲線n參照有理多項式,為參照有理多項式,為Bzier曲線方程加入曲線方程加入權(quán)因子權(quán)因子hi,0( )( )nii niC tPBt,00( )( )/( )nnriii nii niiC tPhBthBt000,1 11,00,11,( )( ).( )( )( ).( )nnnnn nnnnn nh P Bth PBth P Bth Bth Bth Bt 1.3.2 Bzie

31、r曲線曲線n引入權(quán)因子可更好地控制曲線的形狀引入權(quán)因子可更好地控制曲線的形狀n權(quán)因子增大權(quán)因子增大 ,曲線逐漸被拉向該控制頂點(diǎn),曲線逐漸被拉向該控制頂點(diǎn)P0(h0=1)P1(h1=1)P2P3(h3=1)h2=1/2h2=1h2=2 1.3.2 Bzier曲線曲線n Bzier曲線的缺點(diǎn)曲線的缺點(diǎn)控制頂點(diǎn)的數(shù)目控制頂點(diǎn)的數(shù)目n決定了決定了Bzier曲線的階次,曲線的階次,當(dāng)當(dāng)n很大時,控制多邊形對曲線的控制將會減很大時,控制多邊形對曲線的控制將會減弱;弱;Bzier曲線不能做局部修改。改變某一控制曲線不能做局部修改。改變某一控制頂點(diǎn),整條曲線都會改變。這是因?yàn)轫旤c(diǎn),整條曲線都會改變。這是因?yàn)锽

32、zier曲曲線的調(diào)和函數(shù)在線的調(diào)和函數(shù)在0 t 1的整個區(qū)間內(nèi)都不為的整個區(qū)間內(nèi)都不為0。1.3.3 B樣條曲線樣條曲線n 已知已知n+1個控制頂點(diǎn)個控制頂點(diǎn)Pi (i=0,1,n),k次次B樣條樣條曲線的表達(dá)式為曲線的表達(dá)式為,0( )( )nii kiC uPBu調(diào)合函數(shù)控制頂點(diǎn)1,0,111,1,1111 ( )0 ()( )()( )( ) ()iiiii ki kiki kkni kii kitutBuut Butu BuBututtttt 若其他 1.3.3 B樣條曲線樣條曲線n節(jié)點(diǎn)矢量節(jié)點(diǎn)矢量 Knot Vectorn節(jié)點(diǎn)為非減序排列,即節(jié)點(diǎn)為非減序排列,即ti+1 tn當(dāng)節(jié)點(diǎn)沿

33、參數(shù)參數(shù)軸等距分布,即當(dāng)節(jié)點(diǎn)沿參數(shù)參數(shù)軸等距分布,即ti+1- ti為常數(shù),則為為常數(shù),則為均均勻勻B樣條曲線樣條曲線;n若若ti+1- ti不為常數(shù),則為不為常數(shù),則為非均勻非均勻B樣條曲線樣條曲線;0121, ,.,ikTt tt 1.3.3 B樣條曲線樣條曲線n均勻均勻B樣條曲線樣條曲線n節(jié)點(diǎn)矢量的定義節(jié)點(diǎn)矢量的定義n例如,由例如,由4個控制頂點(diǎn)的個控制頂點(diǎn)的2次次B樣條曲線的樣條曲線的節(jié)點(diǎn)矢量為節(jié)點(diǎn)矢量為n一條均勻一條均勻B樣條曲線樣條曲線的所有調(diào)和函數(shù)的所有調(diào)和函數(shù)Bi,k(u)形狀都相同形狀都相同 (01)itiink 0,1,2,3,4,5,6,7T 1.0007642531P0

34、P1P2P3B0,2B1,2B2,2B3,2B4,2uPSPE 1.3.3 B樣條曲線樣條曲線n均勻均勻B樣條曲線樣條曲線Uniform B-spline basis functions from degree 1 to 6. As degree increases, the basis functions become smoother and have a larger support, but each basis function still has only local influence over a curve or surface. 1.3.3 B樣條曲線樣條曲線n非均勻非均勻

35、B樣條曲線樣條曲線n節(jié)點(diǎn)矢量可以為節(jié)點(diǎn)矢量可以為 0,1,2,3,3,4 0,2,2,3,3,6 0,0.2 ,0.6 ,0.9 ,1.0n增加調(diào)和函數(shù)形狀的多樣性,更有效地調(diào)整曲線形狀,增加增加調(diào)和函數(shù)形狀的多樣性,更有效地調(diào)整曲線形狀,增加細(xì)微的擺動,甚至增加不連續(xù)的局部細(xì)微的擺動,甚至增加不連續(xù)的局部1.000231B0,2B1,2B2,2B3,2B4,2 1.3.3 B樣條曲線樣條曲線Cubic B-spline basis functions for two different knot vectors. example B-spline curves defined on thes

36、e bases. 1.3.3 B樣條曲線樣條曲線nB樣條曲線的優(yōu)點(diǎn)樣條曲線的優(yōu)點(diǎn)n曲線次數(shù)獨(dú)立于控制點(diǎn)數(shù)目;曲線次數(shù)獨(dú)立于控制點(diǎn)數(shù)目;n允許局部修改曲線形狀。允許局部修改曲線形狀。 1.3.3 B樣條曲線樣條曲線nB樣條曲線的性質(zhì)樣條曲線的性質(zhì)n局部性局部性。調(diào)和函數(shù)僅在。調(diào)和函數(shù)僅在ti,ti+k+1區(qū)間內(nèi)有值,使區(qū)間內(nèi)有值,使得得k次次B樣條曲線在修改時僅與相鄰的樣條曲線在修改時僅與相鄰的k+1個控個控制頂點(diǎn)相關(guān)制頂點(diǎn)相關(guān)n連續(xù)性連續(xù)性。 k次次B樣條曲線在整個參數(shù)樣條曲線在整個參數(shù)u取值取值范圍范圍內(nèi)具有內(nèi)具有Ck-1階連續(xù)。如果在某一節(jié)點(diǎn)處是階連續(xù)。如果在某一節(jié)點(diǎn)處是L重節(jié)重節(jié)點(diǎn),點(diǎn),

37、 則具有則具有Ck-L階連續(xù)階連續(xù)1,10 ( )0 ii ki kii ktutBuutut 或 1.3.3 B樣條曲線樣條曲線nB樣條曲線的性質(zhì)樣條曲線的性質(zhì)n變差縮減性。變差縮減性。在相鄰節(jié)點(diǎn)之間的每個樣條曲線在相鄰節(jié)點(diǎn)之間的每個樣條曲線段包含在相鄰的段包含在相鄰的k+1個控制點(diǎn)所形成的凸包內(nèi),個控制點(diǎn)所形成的凸包內(nèi),任意直線與曲線的交點(diǎn)數(shù)不超過與控制多邊形任意直線與曲線的交點(diǎn)數(shù)不超過與控制多邊形的交點(diǎn)數(shù)。的交點(diǎn)數(shù)。n造型的靈活性造型的靈活性??梢詷?gòu)造直線段、尖點(diǎn)、切線??梢詷?gòu)造直線段、尖點(diǎn)、切線等特殊情況。等特殊情況。n構(gòu)造直線。對三次。對三次B樣條曲線,設(shè)置樣條曲線,設(shè)置4個控制頂點(diǎn)

38、個控制頂點(diǎn)Pi, Pi+1, Pi+2, Pi+3在同一直線上,就可以得到一段直線,此時對應(yīng)的在同一直線上,就可以得到一段直線,此時對應(yīng)的 ti+3 u ti+4曲線段即為一條直線,且與曲線段即為一條直線,且與Pi Pi+1 Pi+2 Pi+3所在所在的直線重合的直線重合P0P1P2P3P4 P5 1.3.3 B樣條曲線樣條曲線nB樣條曲線的性質(zhì)樣條曲線的性質(zhì)n造型的靈活性造型的靈活性n構(gòu)造尖點(diǎn)。對三次。對三次B樣條曲線,設(shè)置控制頂點(diǎn)樣條曲線,設(shè)置控制頂點(diǎn)Pi, Pi+1, Pi+2三三點(diǎn)重合,就可以使曲線過點(diǎn)重合,就可以使曲線過Pi點(diǎn),形成尖點(diǎn)點(diǎn),形成尖點(diǎn)P0P1P2P3P4 P5 1.3.

39、3 B樣條曲線樣條曲線nB樣條曲線的性質(zhì)樣條曲線的性質(zhì)n造型的靈活性造型的靈活性n構(gòu)造切線。為使三次。為使三次B樣條曲線與某一直線樣條曲線與某一直線L相切,設(shè)置控相切,設(shè)置控制頂點(diǎn)制頂點(diǎn)Pi, Pi+1, Pi+2位于位于L上,并且節(jié)點(diǎn)上,并且節(jié)點(diǎn)ti+3的重節(jié)點(diǎn)數(shù)不超過的重節(jié)點(diǎn)數(shù)不超過2個。個。P0P1P3 P4P2 1.3.4 非均勻有理非均勻有理B 樣條曲線樣條曲線nNon-Uniform Rational B-splineNURBS曲線曲線n非均勻:節(jié)點(diǎn)矢量在參數(shù)軸上的分布不等距非均勻:節(jié)點(diǎn)矢量在參數(shù)軸上的分布不等距n加入控制頂點(diǎn)的權(quán)因子,便于更靈活地對曲線進(jìn)加入控制頂點(diǎn)的權(quán)因子,便于

40、更靈活地對曲線進(jìn)行修改行修改n函數(shù)形式函數(shù)形式 Wi為控制頂點(diǎn)為控制頂點(diǎn)Pi的權(quán)因子、的權(quán)因子、 ,00( )( )/( )nniii kii kiiC uW PBuW Bu 1.3.4 非均勻有理非均勻有理B 樣條樣條NURBS曲線曲線nNURBS曲線曲線的優(yōu)點(diǎn)的優(yōu)點(diǎn)n對標(biāo)準(zhǔn)的解析形狀(圓錐曲線、二次曲線、回轉(zhuǎn)面對標(biāo)準(zhǔn)的解析形狀(圓錐曲線、二次曲線、回轉(zhuǎn)面等)提供了統(tǒng)一的數(shù)學(xué)表示,便于工程數(shù)據(jù)庫的存等)提供了統(tǒng)一的數(shù)學(xué)表示,便于工程數(shù)據(jù)庫的存取和應(yīng)用;取和應(yīng)用;n可以通過控制頂點(diǎn)和權(quán)因子更靈活地改變形狀;可以通過控制頂點(diǎn)和權(quán)因子更靈活地改變形狀;n具有透視投影變換和仿射變換的不變性;具有透視

41、投影變換和仿射變換的不變性;n非有理非有理B樣條、有理及非有理樣條、有理及非有理Bzier曲線、曲面都曲線、曲面都是是NURBS的特例;的特例;nNURBS已已被國際標(biāo)準(zhǔn)化組織定義為工業(yè)產(chǎn)品形狀被國際標(biāo)準(zhǔn)化組織定義為工業(yè)產(chǎn)品形狀表示的國際標(biāo)準(zhǔn)方法。表示的國際標(biāo)準(zhǔn)方法。 1.3.4 非均勻有理非均勻有理B 樣條樣條NURBS曲線曲線nNURBS曲線曲線的缺點(diǎn)的缺點(diǎn)n比一般的曲線、曲面定義方法更費(fèi)存儲空間和處理比一般的曲線、曲面定義方法更費(fèi)存儲空間和處理時間;時間;n權(quán)因子選擇不當(dāng)會造成形狀畸變;權(quán)因子選擇不當(dāng)會造成形狀畸變;n對拼接、重疊形狀的處理相當(dāng)麻煩;對拼接、重疊形狀的處理相當(dāng)麻煩;n如點(diǎn)

42、的映射這類算法在如點(diǎn)的映射這類算法在NURBS情況下會不太穩(wěn)定。情況下會不太穩(wěn)定。1.3.5 等距線等距線n 理論公式理論公式 d為等距線的偏離量,為等距線的偏離量,N(t)為曲線在某一點(diǎn)的法矢為曲線在某一點(diǎn)的法矢量量;n 折線集等距線:用滿足精度的一系列折線段去逼:用滿足精度的一系列折線段去逼近原曲線,然后再求該折線集的等距線集近原曲線,然后再求該折線集的等距線集,獲得,獲得曲線的等距線。曲線的等距線。0( )( )( )C tC td N t1.4 OpenGL中參數(shù)曲線的繪制中參數(shù)曲線的繪制n1.4.1 繪制繪制Bzier曲線曲線nOpenGL一維求值器一維求值器nOpenGL使用求值器

43、構(gòu)造曲線曲面;使用求值器構(gòu)造曲線曲面;n用一維求值器繪制用一維求值器繪制Bzier曲線曲線P(u),步驟為,步驟為 首先用首先用glMap1()命令定義一維求值器;命令定義一維求值器;Void glMap1fd(GLenum target, TYPE u1, TYPE u2, Glint stride, GLint order, const TYPE *points);target 定義求值器所獲得的控制點(diǎn)類型; u1, u2 確定Bzier曲線參數(shù)的取值范圍;stride 表示開始控制頂點(diǎn)到下一個控制頂點(diǎn)之間的數(shù)值個數(shù);order 表示曲線的階數(shù)(次數(shù)1); *points 指定控制頂點(diǎn)數(shù)據(jù)

44、。.1.4.1 繪制繪制Bzier曲線曲線glMap1()函數(shù)中函數(shù)中控制點(diǎn)類型控制點(diǎn)類型target的可選值的可選值參 數(shù)含 義GL_MAP1_VERTEXT_3x, y, z 頂點(diǎn)坐標(biāo)頂點(diǎn)坐標(biāo)GL_MAP1_VERTEXT_4x, y, z , w頂點(diǎn)坐標(biāo)頂點(diǎn)坐標(biāo)GL_MAP1_INDEX顏色索引顏色索引GL_MAP1_COLORR,G,B,AGL_MAP1_NORMAL法向量坐標(biāo)法向量坐標(biāo)GL_MAP1_TEXTURE_COORD_1s 一維一維紋理坐標(biāo)紋理坐標(biāo)GL_MAP1_TEXTURE_COORD_2s, t 二維二維紋理坐標(biāo)紋理坐標(biāo)GL_MAP1_TEXTURE_COORD_3s

45、, t, r 三維三維紋理坐標(biāo)紋理坐標(biāo)GL_MAP1_TEXTURE_COORD_4s, t, r, q 齊次齊次紋理坐標(biāo)紋理坐標(biāo)1.4.1 繪制繪制Bzier曲線曲線glMap1()命令的調(diào)用實(shí)例命令的調(diào)用實(shí)例glMap1f ( GL_MAP_VERTEXT_3, 0.0, 1.0, 3 , 4, &ctrlpoints);求取曲線上的頂點(diǎn)位置坐標(biāo)參數(shù)變化范圍01兩頂點(diǎn)之間間隔3個數(shù)值4階曲線定義控制頂點(diǎn)的數(shù)組1.4.1 繪制繪制Bzier曲線曲線n用一維求值器繪制用一維求值器繪制Bzier曲線曲線P(u)步驟步驟 調(diào)用調(diào)用glEnable()激活求值器;激活求值器;例如:例如:gl

46、Enable(GL_MAP_VERTEXT_3); /*激活頂點(diǎn)求值器激活頂點(diǎn)求值器*/glEnable(GL_MAP1_TEXTURE_COORD_3); /*激活紋理坐標(biāo)求值器激活紋理坐標(biāo)求值器*/ 調(diào)用調(diào)用glEvalCoord1()計算曲線上點(diǎn)的坐標(biāo)。計算曲線上點(diǎn)的坐標(biāo)。Void glEvalCoord1fdv(TYPE u);函數(shù)功能:根據(jù)參數(shù):根據(jù)參數(shù)u的取值,計算一維求值器中指定的控制點(diǎn)數(shù)的取值,計算一維求值器中指定的控制點(diǎn)數(shù) 值。值。1.4.1 繪制繪制Bzier曲線曲線nBzier曲線繪制實(shí)例曲線繪制實(shí)例n要求 用用8個控制頂點(diǎn)繪制一條個控制頂點(diǎn)繪制一條7次次Bzier曲線;

47、曲線; 打開打開GL_MAP_VERTEXT_3 和和 GL_MAP_COLOR_4 求值器,繪制曲線并生成求值器,繪制曲線并生成各點(diǎn)的顏色值。各點(diǎn)的顏色值。#include #include #include /*定義定義8個控制頂點(diǎn)坐標(biāo)個控制頂點(diǎn)坐標(biāo)*/GLfloat ctrlpoints83=-4.0,0.0,0.0,-2.0,3.0,0.0,0.0,4.0,0.0,2.0,3.0,0.0,4.0,0.0,0.0,6.0,-1.0,0.0,7.0,-1.0,0.0,8.0,1.0,0.0;/*定義定義8個顏色控制頂點(diǎn)個顏色控制頂點(diǎn)*/GLfloat ctrlcolor84=1.0,0.0,0.0,1.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0;void init(void)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論