




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2023/2/21第七章曲線(xiàn)與曲面7.1曲線(xiàn)曲面基礎(chǔ)7.2三次樣條曲線(xiàn)曲面7.3Bézier曲線(xiàn)和曲面7.4B樣條曲線(xiàn)和曲面7.5非均勻有理B樣條曲線(xiàn)曲面7.6用OpenGL生成曲線(xiàn)和曲面2023/2/22曲線(xiàn)與曲面概述
曲線(xiàn)曲面的計(jì)算機(jī)輔助設(shè)計(jì)源于20世紀(jì)60年代的飛機(jī)和汽車(chē)工業(yè)。1963年美國(guó)波音公司的Ferguson提出用于飛機(jī)設(shè)計(jì)的參數(shù)三次方程;1962年法國(guó)雷諾汽車(chē)公司的Bézier提出以逼近為基礎(chǔ)的曲線(xiàn)曲面設(shè)計(jì)系統(tǒng)UNISURF,此前deCasteljau大約于1959年在法國(guó)另一家汽車(chē)公司雪鐵龍的CAD系統(tǒng)中有同樣的設(shè)計(jì),但因?yàn)楸C艿脑蚨鴽](méi)有公布;1964年Coons提出了一類(lèi)布爾和形式的曲面;1972年,deBoor和Cox分別給出B樣條的標(biāo)準(zhǔn)算法;1975年以后,Riesenfeld等人研究了非均勻B樣條曲線(xiàn)曲面,美國(guó)錫拉丘茲大學(xué)的
Versprille研究了有理B樣條曲線(xiàn)曲面,20世紀(jì)80年末、90年代初,Piegl和Tiller等人對(duì)有理B樣條曲線(xiàn)曲面進(jìn)行了深入的研究,并形成非均勻有理B樣條(Non-UniformRationalB-Spline,簡(jiǎn)稱(chēng)NURBS);1991年國(guó)際標(biāo)準(zhǔn)組織(ISO)正式頒布了產(chǎn)品數(shù)據(jù)交換的國(guó)際標(biāo)準(zhǔn)STEP,NURBS是工業(yè)產(chǎn)品幾何定義唯一的一種自由型曲線(xiàn)曲面。2023/2/23曲線(xiàn)曲面設(shè)計(jì)方法的要求
整個(gè)曲線(xiàn)曲面設(shè)計(jì)方法的發(fā)展史表明了曲線(xiàn)曲面設(shè)計(jì)方法的要求:避免高次多項(xiàng)式函數(shù)可能引起的過(guò)多拐點(diǎn),曲線(xiàn)曲面設(shè)計(jì)宜采用低次多項(xiàng)式函數(shù)進(jìn)行組合;組合曲線(xiàn)曲面在公共連接處滿(mǎn)足一定的連續(xù)性;繪圖過(guò)程具有明確的幾何意義,且操作方便;具有幾何不變性;具有局部修改性。2023/2/247.1曲線(xiàn)曲面基礎(chǔ)7.1.1曲線(xiàn)、曲面的表示形式1.曲線(xiàn)的表示形式平面曲線(xiàn)的直角坐標(biāo)表示形式為:
或其參數(shù)方程則為:平面上一點(diǎn)的位置可用自原點(diǎn)到該點(diǎn)的矢量表示:
上式稱(chēng)為曲線(xiàn)的矢量方程,其坐標(biāo)分量表示式是曲線(xiàn)的參數(shù)方程。2023/2/25r(t2)r(t1)OYXZ圖7-1空間曲線(xiàn)
三維空間曲線(xiàn)可理解為一個(gè)動(dòng)點(diǎn)的軌跡,位置矢量r隨時(shí)間t變化的關(guān)系就是一條空間曲線(xiàn)。
矢量方程為:三維空間曲線(xiàn)的參數(shù)方程為:2023/2/26用s表示曲線(xiàn)的弧長(zhǎng),以弧長(zhǎng)為參數(shù)的曲線(xiàn)方程稱(chēng)為自然參數(shù)方程。以弧長(zhǎng)為參數(shù)的曲線(xiàn),其切矢為單位矢量,記為t(s)。切矢t(s)對(duì)弧長(zhǎng)s求導(dǎo),所得導(dǎo)矢dt(s)/ds與切矢相垂直,稱(chēng)為曲率矢量,如圖7-2,其單位矢量稱(chēng)為曲線(xiàn)的單位主法矢,記為n(s),其模長(zhǎng)稱(chēng)為曲線(xiàn)的曲率,記為k(s)。曲率的倒數(shù)稱(chēng)為曲線(xiàn)的曲率半徑,記為ρ(s)。
與t和n相互垂直的單位矢量稱(chēng)為副法矢,記為b(s)。由t和n張成的平面稱(chēng)為密切平面;由n和b張成的平面稱(chēng)為法平面;由t和b張成的平面稱(chēng)為從切面。
法平面密切平面從切面tnρbP圖7-2曲線(xiàn)特性分析
曲率,其幾何意義是曲線(xiàn)的單位切矢量t(s)對(duì)弧長(zhǎng)的轉(zhuǎn)動(dòng)率。撓率的絕對(duì)值等于副法線(xiàn)方向b(s)(或密切平面)對(duì)于弧長(zhǎng)的轉(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稱(chēng)為二階混合偏導(dǎo)數(shù),在二階連續(xù)時(shí),兩者相同。2023/2/210rvnruZvv3v2v1v0OuYXr(u,v)圖7-3空間曲面
如圖7-3,曲面上一點(diǎn)的切矢ru和rv所張成平面稱(chēng)為曲面在該點(diǎn)的切平面。曲面上所有過(guò)該點(diǎn)的曲線(xiàn)在此點(diǎn)的切矢都位于切平面內(nèi)。切平面的法矢就是曲面在該點(diǎn)的法矢。2023/2/211
直紋面
旋轉(zhuǎn)面對(duì)于固定的u,它是一條直線(xiàn),當(dāng)u變化時(shí),就成了面,即“線(xiàn)動(dòng)成面”。
雙線(xiàn)性插值曲面
3.幾種典型的面2023/2/212Coons曲面是已知曲面片的四條邊界曲線(xiàn),由兩張直紋曲面的和減去一張雙線(xiàn)性插值曲面得到的:
這種布爾和形式的曲面是Coons于1967年研究的,拼合時(shí)整張曲面C0連續(xù),即位置連續(xù)。要達(dá)到C1連續(xù),必須考慮跨界切矢的插值。
Coons曲面(麻省理工學(xué)院)2023/2/213
雙線(xiàn)性插值曲面,采用了“先定義線(xiàn),然后線(xiàn)動(dòng)成面”的思想。張量積曲面也是采用“線(xiàn)動(dòng)成面”的思想,是CAGD中應(yīng)用最廣泛的一類(lèi)曲面生成方法。映射空間域參數(shù)域vu
張量積曲面2023/2/214
定義在uv平面的矩形區(qū)域上的這張曲面稱(chēng)為張量積曲面。張量積曲面的特點(diǎn)是將曲面問(wèn)題化解為簡(jiǎn)單的曲線(xiàn)問(wèn)題來(lái)處理,適用于拓?fù)渖铣示匦蔚那嫘螤?。樣條的歷史很早的繪圖員利用壓鐵“ducks”和有柔性的木條(樣條)來(lái)繪制曲線(xiàn)木質(zhì)的樣條具有二階連續(xù)并且通過(guò)所有的控制點(diǎn)ADuck(weight)Duckstraceoutcurve7.1.2曲線(xiàn)曲面的光滑連接2023/2/2161.插值、擬合與逼近插值:給定一組有序的數(shù)據(jù)點(diǎn)Pi,i=0,1,…,n,構(gòu)造一條曲線(xiàn)順序通過(guò)這些數(shù)據(jù)點(diǎn),稱(chēng)為對(duì)這些數(shù)據(jù)點(diǎn)進(jìn)行插值,所構(gòu)造的曲線(xiàn)稱(chēng)為插值曲線(xiàn)。擬合:構(gòu)造一條曲線(xiàn)使之在某種意義下最接近給定的數(shù)據(jù)點(diǎn)(但未必通過(guò)這些點(diǎn)),所構(gòu)造的曲線(xiàn)為擬合曲線(xiàn)。逼近:在計(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)造一條曲線(xiàn)順序通過(guò)這些數(shù)據(jù)點(diǎn),稱(chēng)為對(duì)這些數(shù)據(jù)點(diǎn)進(jìn)行插值,所構(gòu)造的曲線(xiàn)稱(chēng)為插值曲線(xiàn)。線(xiàn)性插值:假設(shè)給定函數(shù)f(x)在兩個(gè)不同點(diǎn)x1和x2的值,用一個(gè)線(xiàn)形函數(shù):y=ax+b,近似代替,稱(chēng)為的線(xiàn)性插值函數(shù)。拋物線(xiàn)插值:已知在三個(gè)互異點(diǎn)的函數(shù)值為,要求構(gòu)造一個(gè)函數(shù)使拋物線(xiàn)在結(jié)點(diǎn)處與在處的值相等。插值xyo1y2y)(xfy=)(xyj=1x2xxyo1y2y)(xfy=)(xyj=1x2x3x3y(a)(b)
線(xiàn)性插值和拋物插值逼近:構(gòu)造一條曲線(xiàn)使之在某種意義下最接近給定的數(shù)據(jù)點(diǎn)(但未必通過(guò)這些點(diǎn)),所構(gòu)造的曲線(xiàn)稱(chēng)為逼近曲線(xiàn)。在計(jì)算數(shù)學(xué)中,逼近通常指用一些性質(zhì)較好的函數(shù)近似表示一些性質(zhì)不好的函數(shù)。
曲線(xiàn)的逼近逼近求給定型值點(diǎn)之間曲線(xiàn)上的點(diǎn)稱(chēng)為曲線(xiàn)的插值。將連接有一定次序控制點(diǎn)的直線(xiàn)序列稱(chēng)為控制多邊形或特征多邊形。
曲線(xiàn)的逼近凸殼(凸包)凸殼Convexhull的定義:
包含一組控制點(diǎn)的凸多邊形邊界。凸殼的作用提供了曲線(xiàn)或曲面與包圍控制點(diǎn)的區(qū)域之間的偏差的測(cè)量以凸殼為界的樣條保證了多項(xiàng)式沿控制點(diǎn)的平滑前進(jìn)凸殼光順(Firing)指曲線(xiàn)的拐點(diǎn)不能太多。對(duì)平面曲線(xiàn)而言,相對(duì)光順的條件是:a.具有二階幾何連續(xù)性(G2);b.不存在多余拐點(diǎn)和奇異點(diǎn);c.曲率變化較小。光順2023/2/224XYX’Y’由一組基函數(shù)及相聯(lián)系的系數(shù)矢量來(lái)表示:采用不同的基函數(shù),曲線(xiàn)的數(shù)學(xué)表示方法就不同?;瘮?shù)一旦確定,系數(shù)矢量就完全定義了曲線(xiàn)。2.計(jì)算機(jī)輔助幾何設(shè)計(jì)(CAGD)中的曲線(xiàn)的一般表示形式規(guī)范基表示具有幾何不變性。即同樣的點(diǎn)在不同坐標(biāo)系中生成的曲線(xiàn)相同。拋物線(xiàn)方程不具有幾何不變性。2023/2/2253.曲線(xiàn)曲面的光滑連接給定一段曲線(xiàn),如果在整個(gè)參數(shù)定義域內(nèi)處處k次可微,則稱(chēng)該曲線(xiàn)為Ck參數(shù)連續(xù)。給定兩段內(nèi)部Ck連續(xù)的參數(shù)曲線(xiàn)r1(u1),u1∈[0,1]和r2(u2),u2∈[0,1],則兩段曲線(xiàn)在公共連接點(diǎn)處不同階次的連續(xù)性對(duì)應(yīng)不同的要求。2023/2/2261)位置連續(xù) 曲線(xiàn)段r1(u1)的末端和曲線(xiàn)段r2(u2)的首端達(dá)到位置連續(xù)的條件為:r1(1)=r2(0)
位置連續(xù)是C0連續(xù)。2023/2/2272)
斜率連續(xù)曲線(xiàn)段r1(u1)的末端和曲線(xiàn)段r2(u2)的首端達(dá)到斜率連續(xù)的條件為:r'1(1)=kr'2(0)若k=1,說(shuō)明曲線(xiàn)段r1(u1)的末端切矢與曲線(xiàn)段r2(u2)的首端切方向相同、模長(zhǎng)相等,稱(chēng)為C1連續(xù)。若k≠1,則說(shuō)明兩段曲線(xiàn)在公共連接點(diǎn)處的切矢方向相同,但模長(zhǎng)不相等。這種情況是幾何連續(xù)的,稱(chēng)為G1連續(xù)。也稱(chēng)視覺(jué)連續(xù)。切矢方向與模:方向相同,模不同,G1連續(xù);方向相同,模相同,C1連續(xù);2023/2/2283)曲率連續(xù)兩曲線(xiàn)段曲率連續(xù)應(yīng)滿(mǎn)足:(1)位置連續(xù);(2)斜率連續(xù);(3)曲率相等且主法矢方向一致。曲率連續(xù)的條件為:C2連續(xù)滿(mǎn)足條件:
幾何意義是:曲線(xiàn)段r2(u)首端的二階導(dǎo)矢應(yīng)處在由曲線(xiàn)段r1(v)末端的二階導(dǎo)矢和一階導(dǎo)矢所張成的平面內(nèi)。
對(duì)于曲面片,若兩個(gè)曲面片在公共連接線(xiàn)上處處滿(mǎn)足上述各類(lèi)連續(xù)性條件,則兩個(gè)曲面片之間有同樣的結(jié)論。
2023/2/230n次多項(xiàng)式的全體構(gòu)成n次多項(xiàng)式空間,在其中任選一組線(xiàn)性無(wú)關(guān)的多項(xiàng)式都可以作為基。
冪基
ui,i=0,1,…,n,是最簡(jiǎn)單的多項(xiàng)式基,相應(yīng)的參數(shù)多項(xiàng)式曲線(xiàn)方程為:
對(duì)于給定的n+1個(gè)數(shù)據(jù)點(diǎn)Pi,i=0,1,2,…,n,欲構(gòu)造其插值曲線(xiàn)或逼近曲線(xiàn),必先得到對(duì)應(yīng)于各數(shù)據(jù)點(diǎn)Pi的參數(shù)值ui,ui是一個(gè)嚴(yán)格遞增的序列△U:u0<u1<…<un。4.參數(shù)多項(xiàng)式曲線(xiàn)2023/2/231采用不同的參數(shù)化,得到的曲線(xiàn)也不同。常用的參數(shù)化方法有:均勻參數(shù)化(等距參數(shù)化)積累弦長(zhǎng)參數(shù)化向心參數(shù)化修正弦長(zhǎng)參數(shù)化對(duì)給定的數(shù)據(jù)點(diǎn)實(shí)行參數(shù)化,將參數(shù)值ui代入前面所述方程,使之滿(mǎn)足插值條件:得一線(xiàn)性方程組:2023/2/232解線(xiàn)性方程組,可得系數(shù)矢量的唯一解。然而,冪基多項(xiàng)式曲線(xiàn)方程中的系數(shù)矢量幾何意義不明確,構(gòu)造曲線(xiàn)時(shí),需解線(xiàn)性方程組,n較大時(shí),不可取。其它多項(xiàng)式插值曲線(xiàn)如Lagrange、Newton、Hermite等較之冪基多項(xiàng)式曲線(xiàn)在計(jì)算性能等方面有較大改進(jìn),但總體上多項(xiàng)式曲線(xiàn)存在兩個(gè)問(wèn)題:l
次數(shù)增高時(shí),出現(xiàn)多余的拐點(diǎn);l
整體計(jì)算,一個(gè)數(shù)據(jù)點(diǎn)的微小改動(dòng),可能引起曲線(xiàn)整體大的波動(dòng)。2023/2/233由于高次多項(xiàng)式曲線(xiàn)存在缺陷,單一低次多項(xiàng)式曲線(xiàn)又難以描述復(fù)雜形狀的曲線(xiàn)。所以采用低次多項(xiàng)式按分段的方式在一定連續(xù)條件下拼接復(fù)雜的組合曲線(xiàn)是唯一的選擇。
低次多項(xiàng)式組合曲線(xiàn)以三次多項(xiàng)式為例:2023/2/234y1(x)=a1+b1x+c1x2+d1x3y2(x)=a2+b2x+c2x2+d2x3y3(x)=a3+b3x+c3x2+d3x3“線(xiàn)動(dòng)成面”
如何選擇基函數(shù)使系數(shù)具有幾何意義,且操作方便、易于修改是曲線(xiàn)曲面設(shè)計(jì)方法的發(fā)展方向。7.5.1樣條描述n次樣條參數(shù)多項(xiàng)式曲線(xiàn)的矩陣:7.5Himerte樣條
基函數(shù)(blengingfunction),或稱(chēng)混合函數(shù)。7.5.2三次樣條給定n+1個(gè)點(diǎn),可得到通過(guò)每個(gè)點(diǎn)的分段三次多項(xiàng)式曲線(xiàn):7.5.3自然三次樣條定義:給定n+1個(gè)型值點(diǎn),現(xiàn)通過(guò)這些點(diǎn)列構(gòu)造一條自然三次參數(shù)樣條曲線(xiàn),要求在所有曲線(xiàn)段的公共連接處均具有位置、一階和二階導(dǎo)數(shù)的連續(xù)性,即自然三次樣條具有C2連續(xù)性。還需要兩個(gè)附加條件才能解出方程組.
特點(diǎn):1.只適用于型值點(diǎn)分布比較均勻的場(chǎng)合2.不能“局部控制”
7.5.4三次Hermite樣條定義:假定型值點(diǎn)Pk和Pk+1之間的曲線(xiàn)段為p(t),t∈[0,1],給定矢量Pk、Pk+1、Rk和Rk+1,則滿(mǎn)足下列條件的三次參數(shù)曲線(xiàn)為三次Hermite樣條曲線(xiàn):
推導(dǎo):幾何形式對(duì)三次參數(shù)曲線(xiàn),若用其端點(diǎn)位矢P(0)、P(1)和切矢P¢(0)、P¢(1)描述。將P(0)、P(1)、P¢(0)和P¢(1)簡(jiǎn)記為P0、P1、P¢0和P¢1,代入得
Mh是Hermite矩陣。Gh是Hermite幾何矢量。三次Hermite樣條曲線(xiàn)的方程為:
通常將T?Mk稱(chēng)為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è)曲線(xiàn)段僅依賴(lài)于端點(diǎn)約束。2.Hermite曲線(xiàn)具有幾何不變性2023/2/248Bézier曲線(xiàn)是法國(guó)雷諾汽車(chē)公司的工程師Bézier于1962年提出。1972年在UNISURF系統(tǒng)中正式投入使用。Bézier曲線(xiàn)采用一組特殊的基函數(shù),使得基函數(shù)的系數(shù)具有明確的幾何意義。其曲線(xiàn)方程:
其中從a0到an首尾相連的折線(xiàn)稱(chēng)為Bézier控制多邊形。7.3Bézier曲線(xiàn)和曲面(注:Bézier本人也不能解釋該公式的來(lái)源)a0a1a2a3ai為相對(duì)位置矢量7.3.1Bézier曲線(xiàn)2023/2/249當(dāng)n=3時(shí):f0(t)f1(t)f2(t)f3(t)1102023/2/250英國(guó)的Forest于1972年將上述Bézier曲線(xiàn)中的控制多邊形頂點(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曲線(xiàn)的矩陣表示取為幾何矩陣GBEZ取為基矩陣MBEZ2023/2/252注意:有的教材中三次Bézier曲線(xiàn)的矩陣表示形式為:三次Bézier曲線(xiàn):2023/2/253曲線(xiàn)的生成:參數(shù)離散計(jì)算型值點(diǎn)連接型值點(diǎn)折線(xià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];/*將曲線(xiàn)的起點(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曲線(xiàn)2023/2/255Bezier曲線(xiàn)的性質(zhì)端點(diǎn)位置2023/2/256端點(diǎn)切矢量
Bezier曲線(xiàn)在起點(diǎn)與終點(diǎn)處分別與控制多邊形的第一條邊與最后一條邊相切,它們?cè)趦啥它c(diǎn)處的切矢量分別為:2023/2/257對(duì)稱(chēng)性如果保持全部控制頂點(diǎn)位置不變,但次序顛倒,即Pi
變作Pn-i,則Bezier曲線(xiàn)形狀不變,但參數(shù)變化方向相反,即2023/2/258仿射不變性仿射不變性指的是某些幾何性質(zhì)不隨坐標(biāo)變換而變化,這些幾何性質(zhì)包括曲線(xiàn)的形狀、曲率、撓率等。仿射不變性還表現(xiàn)在,對(duì)于任意的仿射變換A,曲線(xiàn)的表示形式不變,即對(duì)曲線(xiàn)做變換只要對(duì)控制頂點(diǎn)做變換即可。2023/2/259凸包性點(diǎn)集 的凸包指的是包含這些點(diǎn)的最小凸集。Bezier曲線(xiàn)位于其控制頂點(diǎn)的凸包之內(nèi)??刂祈旤c(diǎn)的凸包為連接P0P3所形成的多邊形區(qū)域:(a)P0P1P2P3(b)P0P1P3P22023/2/260直線(xiàn)再生性 若控制頂點(diǎn)P0,P1,…,Pn
落于一條直線(xiàn)上,由凸包性可知,該Bezier曲線(xiàn)必為一條直線(xiàn)段。2023/2/261變差縮減性: 平面內(nèi)任一條直線(xiàn)與Bezier曲線(xiàn)的交點(diǎn)個(gè)數(shù)不多于該直線(xiàn)與其控制多邊形的交點(diǎn)個(gè)數(shù)。這一性質(zhì)說(shuō)明了Bezier曲線(xiàn)比其控制多邊形的波動(dòng)小,更光滑。平面曲線(xiàn)的保型性假設(shè) 位于一張平面之內(nèi),則Bezier曲線(xiàn)是平面曲線(xiàn),它具有下面兩條性質(zhì):保凸性:
如果控制多邊形是凸的, 則Bezier曲線(xiàn)也是凸的。2023/2/262擬局部性局部性:其含義是指移動(dòng)一個(gè)控制點(diǎn),它只影響曲線(xiàn)的某個(gè)局部。Bezier曲線(xiàn)不具備局部性的性質(zhì),但它具有擬局部性。擬局部性:指的是移動(dòng)一個(gè)控制點(diǎn)Pi
時(shí),對(duì)應(yīng)參數(shù)t=i/n的曲線(xiàn)上的點(diǎn)變動(dòng)最大,遠(yuǎn)離i/n的曲線(xiàn)上的點(diǎn)變動(dòng)越來(lái)越小。2023/2/263形狀的易控性控制多邊形大致上勾畫(huà)了Bezier曲線(xiàn)的形狀,要改變曲線(xiàn)只要改變頂點(diǎn)的位置即可。因此Bezier曲線(xiàn)的人機(jī)交互與形狀控制比較容易。2023/2/264單一Bézier曲線(xiàn)不能滿(mǎn)足描述復(fù)雜形狀的要求,必須采用組合Bézier曲線(xiàn)。P0P1P2P3組合Bézier曲線(xiàn)示意圖Bézier曲線(xiàn)的特點(diǎn)參數(shù)連續(xù)是對(duì)曲線(xiàn)光順性的過(guò)分要求,在組合曲線(xiàn)的連接點(diǎn)處,參數(shù)連續(xù)不僅要求切矢具有共同的切矢方向,而且要求切矢模長(zhǎng)相等。幾何連續(xù)只要求在連接點(diǎn)處切矢方向相同,切矢模長(zhǎng)可以不相等,由此產(chǎn)生了不同控制手段的多種曲線(xiàn),如Gamma()樣條曲線(xiàn)、Beta()樣條曲線(xiàn)等,給曲線(xiàn)設(shè)計(jì)提供了極大的靈活性。2023/2/265若要組合Bézier曲線(xiàn)在連接點(diǎn)處具有一定的連續(xù)性,構(gòu)成曲線(xiàn)的位置點(diǎn)矢量之間存在約束條件,可用Bézier曲線(xiàn)方程的一階、二階導(dǎo)數(shù)推導(dǎo)。Bézier曲線(xiàn)的優(yōu)點(diǎn)是具有明確的幾何意義,給定數(shù)據(jù)點(diǎn)的控制多邊形確定曲線(xiàn)的形狀,在設(shè)計(jì)過(guò)程中具有很強(qiáng)的可操作性。對(duì)于局部參數(shù)的Bézier曲線(xiàn),當(dāng)弦長(zhǎng)差異較大時(shí),弦長(zhǎng)較長(zhǎng)的那段曲線(xiàn)過(guò)分平坦,弦長(zhǎng)較短的那段曲線(xiàn)則鼓得厲害。P0P1P2P3組合Bézier曲線(xiàn)示意圖7.6.5Bezier曲線(xiàn)的遞推(deCasteljau)算法
計(jì)算Bezier曲線(xiàn)上的點(diǎn),可用Bezier曲線(xiàn)方程,但使用deCasteljau提出的遞推算法則要簡(jiǎn)單的多。如下圖所示,設(shè)、、是一條拋物線(xiàn)上順序三個(gè)不同的點(diǎn)。過(guò)和點(diǎn)的兩切線(xiàn)交于點(diǎn),在點(diǎn)的切線(xiàn)交和于和,則如下比例成立:
這是所謂拋物線(xiàn)的三切線(xiàn)定理。(示意圖見(jiàn)下頁(yè))
0P1P2P11P10P20PBezier曲線(xiàn)上的點(diǎn)
拋物線(xiàn)三切線(xiàn)定理當(dāng)P0,P2固定,引入?yún)?shù)t,令上述比值為t:(1-t),有:
t從0變到1,第一、二式就分別表示控制二邊形的第一、二條邊,它們是兩條一次Bezier曲線(xiàn)。將一、二式代入第三式得:當(dāng)t從0變到1時(shí),它表示了由三頂點(diǎn)P0、P1、P2三點(diǎn)定義的一條二次Bezier曲線(xiàn)。并且表明:這二次Bezier曲線(xiàn)P20可以定義為分別由前兩個(gè)頂點(diǎn)(P0,P1)和后兩個(gè)頂點(diǎn)(P1,P2)決定的一次Bezier曲線(xiàn)的線(xiàn)性組合。依次類(lèi)推,由四個(gè)控制點(diǎn)定P(t)=p0+(p1-p0)t義的三次Bezier曲線(xiàn)P30可被定義為分別由(P0,P1,P2)和(P1,P2,P3)確定的二條二次Bezier曲線(xiàn)的線(xiàn)性組合,由(n+1)個(gè)控制點(diǎn)Pi(i=0,1,...,n)定義的n次Bezier曲線(xiàn)Pn0可被定義為分別由前、后n個(gè)控制點(diǎn)定義的兩條(n-1)次Bezier曲線(xiàn)P0n-1與P1n-1的線(xiàn)性組合:由此得到Bezier曲線(xiàn)的遞推計(jì)算公式:這便是著名的deCasteljau算法。用這一遞推公式,在給定參數(shù)下,求Bezier曲線(xiàn)上一點(diǎn)P(t)非常有效。上式中:是定義Bezier曲線(xiàn)的控制點(diǎn),即為曲線(xiàn)上具有參數(shù)t的點(diǎn)。deCasteljau算法穩(wěn)定可靠,直觀(guān)簡(jiǎn)便,可以編出十分簡(jiǎn)捷的程序,是計(jì)算Bezier曲線(xiàn)的基本算法和標(biāo)準(zhǔn)算法。當(dāng)n=3時(shí),decasteljau算法遞推出的Pki呈直角三角形,對(duì)應(yīng)結(jié)果如下圖所示。從左向右遞推,最右邊點(diǎn)P30即為曲線(xiàn)上的點(diǎn)。
0P1P2P3P10P11P12P20P21P30Pn=3時(shí)niP的遞推關(guān)系這一算法可用簡(jiǎn)單的幾何作圖來(lái)實(shí)現(xiàn)。給定參數(shù),就把定義域分成長(zhǎng)度為的兩段。依次對(duì)原始控制多邊形每一邊執(zhí)行同樣的定比分割,所得分點(diǎn)就是由第一級(jí)遞推生成的中間頂點(diǎn),對(duì)這些中間頂點(diǎn)構(gòu)成的控制多邊形再執(zhí)行同樣的定比分割,得第二級(jí)中間頂點(diǎn)。重復(fù)進(jìn)行下去,直到n級(jí)遞推得到一個(gè)中間頂點(diǎn)即為所求曲線(xiàn)上的點(diǎn),如下圖所示。
)3/1(30PP=011/3
幾何作圖法求Bezier曲線(xiàn)
上一點(diǎn)(n=3,t=1/3)0P1P2P3P10P11P12P20P21P7.6.6Bezier曲線(xiàn)的升階與降階1.Bezier曲線(xiàn)的升階所謂升階是指保持Bezier曲線(xiàn)的形狀與定向不變,增加定義它的控制頂點(diǎn)數(shù),也即是提高該Bezier曲線(xiàn)的次數(shù)。增加了控制頂點(diǎn)數(shù),不僅能增加了對(duì)曲線(xiàn)進(jìn)行形狀控制的靈活性,還在構(gòu)造曲面方面有著重要的應(yīng)用。對(duì)于一些由曲線(xiàn)生成曲面的算法,要求那些曲線(xiàn)必須是同次的。應(yīng)用升階的方法,我們可以把低于最高次數(shù)的的曲線(xiàn)提升到最高次數(shù),而獲得同一的次數(shù)。曲線(xiàn)升階后,原控制頂點(diǎn)會(huì)發(fā)生變化。下面,我們來(lái)計(jì)算曲線(xiàn)提升一階后的新的控制頂點(diǎn)。設(shè)給定原始控制頂點(diǎn),定義了一條n次Bezier曲線(xiàn):
增加一個(gè)頂點(diǎn)后,仍定義同一條曲線(xiàn)的新控制頂點(diǎn)為,則有:
對(duì)上式左邊乘以,得到:
比較等式兩邊項(xiàng)的系數(shù),得到:
化簡(jiǎn)即得:
其中。此式說(shuō)明:新的控制頂點(diǎn)是以參數(shù)值按分段線(xiàn)性插值從原始特征多邊形得出的。升階后的新的特征多邊形在原始特征多邊形的凸包內(nèi)特征多邊形更靠近曲線(xiàn)。三次Bezier曲線(xiàn)的升階實(shí)例如下圖所示。*00PP=1P2P*43PP=*1P*2P*3P
Bezier曲線(xiàn)升階2.Bezier曲線(xiàn)的降階降階是升階的逆過(guò)程。給定一條由原始控制頂點(diǎn)定義的n次Bezier曲線(xiàn),要求找到一條由新控制頂點(diǎn)定義的n-1次Bezier曲線(xiàn)來(lái)逼近原始曲線(xiàn)。假定是由升階得到,則由升階公式有:從這個(gè)方程可以導(dǎo)出兩個(gè)遞推公式:
和
給定空間16個(gè)位置點(diǎn)rij,可以確定一張三次Bezier曲面片。首先生成四條v向的三次Bezier曲線(xiàn):
根據(jù)“線(xiàn)動(dòng)成面”的思想,按設(shè)定間隔取v*∈[0,1],在四條v線(xiàn)上取點(diǎn),沿u向生成三次Bezier曲線(xiàn):
7.3.2Bézier曲面片rijuvuvV*uv將u,v向曲線(xiàn)方程合并得:
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ù),即:
其中λ(ν)是考慮法矢模長(zhǎng)的不連續(xù)。
因?yàn)榱頒1連續(xù)的Bézier組合曲面(導(dǎo)矢連續(xù))可以得到組合曲面所有等v線(xiàn)的梯度連續(xù)的矩陣表示。
2023/2/2842023/2/285取λ(ν)=λ,得到表明跨界的四對(duì)棱邊必須共線(xiàn)。
2023/2/286曲面片1曲面片22023/2/287B樣條曲線(xiàn)是Schocenberg于1946年提出的,1972年deBoor和Cox分別給出B樣條的標(biāo)準(zhǔn)算法。作為CAGD的一種形狀描述的數(shù)學(xué)方法是Gordon和Riesenfeld于1974年在研究Bézier曲線(xiàn)的基礎(chǔ)上給出的。B樣條曲線(xiàn)方程為:其中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樣條曲線(xiàn)和曲面2023/2/2880次(1階)B-樣條曲線(xiàn)K=0時(shí)的B-樣條基函數(shù)2023/2/2890次B-樣條曲線(xiàn)示例2023/2/2901次(2階)B-樣條基函數(shù)K=1時(shí)的基函數(shù)2023/2/291K=1時(shí)定義的曲線(xiàn)示例2023/2/2922次(3階)B-樣條基函數(shù)K=2時(shí)的基函數(shù)2023/2/293續(xù)前頁(yè):2023/2/294續(xù)前頁(yè):2023/2/295續(xù)前頁(yè):2023/2/296續(xù)前頁(yè):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開(kāi)始到n,所以節(jié)點(diǎn)矢量為[t0,tn+k+1]。遞推計(jì)算2023/2/299B-樣條曲線(xiàn)的定義共n-k+2段有效區(qū)間:[ti,ti+1]區(qū)間上定義k個(gè)非零基函數(shù)(Ni-k+1,k~Ni,k)
因此,有效區(qū)間的下標(biāo)應(yīng)滿(mǎn)足i>=k-1;與控制點(diǎn)對(duì)應(yīng),有效基函數(shù)下標(biāo)應(yīng)滿(mǎn)足:i<=n。故:總有效區(qū)間為[tk-1,tn+1]。2023/2/21003階B樣條曲線(xiàn)示例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ù)遞推公式展開(kāi)并化簡(jiǎn)得到:2023/2/2104B-樣條基函數(shù)的連續(xù)性2023/2/2105B-樣條曲線(xiàn)的分類(lèi)根據(jù)節(jié)點(diǎn)矢量的不同形式分類(lèi)均勻B樣條曲線(xiàn)準(zhǔn)均勻B樣條曲線(xiàn)分段Bezier曲線(xiàn)非均勻B樣條曲線(xiàn)采用均勻節(jié)點(diǎn)矢量,即所有節(jié)點(diǎn)區(qū)間長(zhǎng)度為大于0的常數(shù),這樣的節(jié)點(diǎn)矢量定義了均勻B-樣條基,從而定義出均勻B-樣條曲線(xiàn)。當(dāng)節(jié)點(diǎn)矢量在首末端點(diǎn)處有K重重復(fù)度,而在內(nèi)部為均勻分布時(shí),可定義準(zhǔn)均勻B-樣條曲線(xiàn)。節(jié)點(diǎn)矢量在首末端點(diǎn)處有K重重復(fù)度,而在內(nèi)部為非均勻分布。2023/2/2106均勻B-樣條曲線(xiàn)均勻節(jié)點(diǎn)矢量均勻B-樣條基均勻B-樣條曲線(xiàn)2023/2/2107例:三次均勻B樣條曲線(xiàn)(1)2023/2/2108三次均勻B樣條曲線(xiàn)(2)2023/2/2109基函數(shù)的平移性三次均勻B樣條曲線(xiàn)(3)1階基函數(shù)2階基函數(shù)2023/2/2110三次均勻B樣條曲線(xiàn)(4)2023/2/2111三次均勻B樣條曲線(xiàn)(5)由前面推導(dǎo)過(guò)程得到:2023/2/2112三次均勻B樣條曲線(xiàn)(6)2023/2/2113三次均勻B樣條曲線(xiàn)(7)2023/2/2114三次均勻B樣條曲線(xiàn)(8)2023/2/2115三次均勻B樣條曲線(xiàn)(9)上式即為區(qū)間[tj,tj+1]上3次均勻B樣條曲線(xiàn)的矩陣表達(dá)式。2023/2/2116P(3)P(4)P(5)2023/2/2117當(dāng)K=3,且采用均勻參數(shù)化時(shí),得到三次均勻B樣條曲線(xiàn):7.4.1均勻B樣條曲線(xiàn)2023/2/2118在分段連接點(diǎn)處B樣條曲線(xiàn)的值和導(dǎo)矢量為:
上式描述的三次均勻B樣條曲線(xiàn)段的幾何特性如圖所示:曲線(xiàn)段首點(diǎn)位于以didi+1和di+1di+2為鄰邊的平行四邊形的1/6處;其切失與didi+2平行,模為長(zhǎng)度的1/2;首點(diǎn)二階導(dǎo)矢是以di+1di和di+1di+2為鄰邊的平行四邊形的對(duì)角線(xiàn)。曲線(xiàn)末端也有類(lèi)似的結(jié)論。圖7-13三次均勻B樣條曲線(xiàn)段的幾何特性2023/2/2119圖7-13三次均勻B樣條曲線(xiàn)段的幾何特性由圖7-13可以看出:當(dāng)di、di+1和di+2三點(diǎn)共線(xiàn)時(shí),曲線(xiàn)段起點(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)共線(xiàn)時(shí),其所定義的曲線(xiàn)段退化為直線(xiàn)段;當(dāng)di+1和di+2兩頂點(diǎn)重合時(shí),曲線(xiàn)段起點(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í),則曲線(xiàn)段在重點(diǎn)處出現(xiàn)尖點(diǎn),重點(diǎn)與前點(diǎn)和后點(diǎn)在尖點(diǎn)前后各形成一段直線(xiàn)段(如圖7-16)。曲線(xiàn)的上述退化情形在實(shí)際設(shè)計(jì)中很有用,如圖7-17是應(yīng)用曲線(xiàn)退化情形設(shè)計(jì)的尖點(diǎn)和直線(xiàn)段。2023/2/2121
對(duì)于三次均勻B樣條曲線(xiàn),計(jì)算對(duì)應(yīng)于參數(shù)[ui,ui+1]這段曲線(xiàn)上的一點(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樣條曲線(xiàn)的基函數(shù)是局部支撐的,修改一個(gè)數(shù)據(jù)點(diǎn),在修改處影響最大,對(duì)其兩側(cè)的影響快速衰減,其影響范圍只有前后各K段曲線(xiàn),對(duì)曲線(xiàn)的其它部分沒(méi)有影響。這是計(jì)算機(jī)輔助幾何設(shè)計(jì)所需要的局部修改性。2023/2/2122
B樣條曲線(xiàn)的基函數(shù)是局部支撐的,均勻B樣條曲線(xiàn)未考慮曲線(xiàn)數(shù)據(jù)點(diǎn)的分布對(duì)參數(shù)化的影響,當(dāng)曲線(xiàn)弦長(zhǎng)差異較大時(shí),弦長(zhǎng)較長(zhǎng)的曲線(xiàn)段比較平坦,而弦長(zhǎng)較短的曲線(xiàn)段則臌漲,甚至于因過(guò)“沖”而產(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向曲線(xiàn)C1、C2、C3和C4(圖中虛線(xiàn));2023/2/2124均勻B樣條曲面(續(xù))參數(shù)v在[0,1]之間取值vk,對(duì)應(yīng)于vk,曲線(xiàn)C1、C2、C3和C4上可得到V1k、V2k、V3k和V4k四個(gè)點(diǎn),該四點(diǎn)構(gòu)成u向的一個(gè)特征多邊形,定義一條新的曲線(xiàn)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考慮曲線(xiàn)弦長(zhǎng)的影響,則曲線(xiàn)的基函數(shù)不再具有同樣的格式,必須根據(jù)給定數(shù)據(jù)點(diǎn)進(jìn)行弦長(zhǎng)參數(shù)化,然后根據(jù)基函數(shù)的定義用如下的曲線(xiàn)方程計(jì)算各段曲線(xiàn)上的點(diǎn):
非均勻B樣條曲線(xiàn)考慮了弦長(zhǎng)的影響,曲線(xiàn)不會(huì)因?yàn)楣?jié)點(diǎn)分布不均勻而產(chǎn)生過(guò)沖和紐結(jié)。非均勻B樣條曲線(xiàn)比均勻B樣條曲線(xiàn)具有更好的光順性,更符合數(shù)據(jù)點(diǎn)的分布。7.5非均勻有理B樣條曲線(xiàn)曲面7.5.1非均勻B樣條曲線(xiàn)曲面非均勻B樣條均勻B樣條2023/2/2127根據(jù)非均勻B樣條曲線(xiàn)方程,計(jì)算曲線(xiàn)上的點(diǎn)需要對(duì)應(yīng)參數(shù)區(qū)間上的基函數(shù)的值和控制多邊形的頂點(diǎn)?;瘮?shù)的值根據(jù)給定數(shù)據(jù)點(diǎn)的參數(shù)化進(jìn)行計(jì)算??刂贫噙呅蔚捻旤c(diǎn)依據(jù)曲線(xiàn)是否通過(guò)給定數(shù)據(jù)點(diǎn)確定。若生成的曲線(xiàn)不通過(guò)給定數(shù)據(jù)點(diǎn),則給定數(shù)據(jù)點(diǎn)就是控制多邊形頂點(diǎn)。若生成的曲線(xiàn)通過(guò)給定數(shù)據(jù)點(diǎn),則首先必須根據(jù)給定數(shù)據(jù)點(diǎn)反求控制多邊形的頂點(diǎn),然后再代入曲線(xiàn)。
非均勻B樣條曲線(xiàn)的實(shí)現(xiàn)2023/2/2128
給定數(shù)據(jù)點(diǎn)di(i=0,1,…,n-1)就是控制多邊形的頂點(diǎn)。不過(guò)點(diǎn)三次非均勻B樣條開(kāi)口和閉口曲線(xiàn)需要分別處理。對(duì)于開(kāi)口曲線(xiàn),n個(gè)數(shù)據(jù)點(diǎn)只畫(huà)n-3段曲線(xiàn),需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ù)值。為使曲線(xiàn)過(guò)給定數(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)不過(guò)點(diǎn)三次非均勻B樣條曲線(xiàn)2023/2/2129用Hartley-Judd方法,即所畫(huà)曲線(xiàn)段對(duì)應(yīng)的控制多邊形的長(zhǎng)度與總控制多邊形的長(zhǎng)度之比確定節(jié)點(diǎn)參數(shù)。計(jì)算出節(jié)點(diǎn)參數(shù)后,就可以用前述的遞歸函數(shù)計(jì)算基函數(shù)Ni,K(u)的值,得到基函數(shù)的值,就可以代入曲線(xiàn)方程計(jì)算各段曲線(xiàn)上的點(diǎn)。圖7-22不過(guò)點(diǎn)非均勻B樣條曲線(xiàn)2023/2/2130對(duì)于閉合曲線(xiàn),n個(gè)數(shù)據(jù)點(diǎn)畫(huà)n段曲線(xiàn),需n+1個(gè)節(jié)點(diǎn)參數(shù)曲線(xiàn);首尾各添加3個(gè)節(jié)點(diǎn)參數(shù),共n+7個(gè)節(jié)點(diǎn)參數(shù)。由于不過(guò)點(diǎn)閉合曲線(xiàn),不通過(guò)控制多邊形的首末點(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)的值,然后用曲線(xiàn)方程計(jì)算各段曲線(xiàn)上的點(diǎn)。2023/2/2131對(duì)于過(guò)點(diǎn)曲線(xiàn),給定的數(shù)據(jù)點(diǎn)Pi(i=0,1,…,n-1)是曲線(xiàn)上的點(diǎn)。由曲線(xiàn)方程知,必須先計(jì)算出節(jié)點(diǎn)參數(shù),再計(jì)算基函數(shù)Ni,K(u)的值,代入曲線(xiàn)方程,才能反算出控制多邊形的頂點(diǎn):
n個(gè)數(shù)據(jù)點(diǎn),反求出n+2個(gè)控制頂點(diǎn),畫(huà)n-1段曲線(xiàn),需n個(gè)節(jié)點(diǎn)參數(shù);首尾各添加3個(gè)節(jié)點(diǎn)參數(shù),一共需要n+6個(gè)節(jié)點(diǎn)參數(shù)值;在曲線(xiàn)首端重3段曲線(xiàn)首段的長(zhǎng)度,在曲線(xiàn)的末端重3段曲線(xiàn)末段的長(zhǎng)度。所有節(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)的總長(zhǎng)。(2)過(guò)點(diǎn)三次非均勻B樣條曲線(xiàn)2023/2/2132根據(jù)節(jié)點(diǎn)矢量計(jì)算基函數(shù)Ni,K(u)的值,代入曲線(xiàn)方程可以計(jì)算n個(gè)已知的曲線(xiàn)上的點(diǎn),得如下方程:
寫(xiě)成矩陣形式如下:
對(duì)于開(kāi)口曲線(xiàn),d0=P0,dn+1=Pn-1,上述方程組是“追趕法”能夠求解的三對(duì)角方程。求出d0,d1,……,dn,dn+1共n+2個(gè)控制頂點(diǎn),即可以畫(huà)出n-1曲線(xiàn)。(閉合曲線(xiàn)省略)2023/2/2133wi,i=0,1,…,n稱(chēng)為權(quán)因子;Ni,K(u)是B樣條的基函數(shù)
有理B樣條曲線(xiàn)非均勻B樣條考慮節(jié)點(diǎn)分布不勻稱(chēng)的影響,但與所有已介紹的計(jì)算曲線(xiàn)一樣,非均勻B樣條不能精確表達(dá)二次曲線(xiàn)曲面,采用有理B樣條,可以統(tǒng)一表達(dá)自由曲線(xiàn)曲面和二次曲線(xiàn)曲面。
有理B樣條曲線(xiàn)的表達(dá)式為:
當(dāng)Ni,K(u)是均勻基函數(shù)時(shí),p(u)為均勻有理B樣條曲線(xiàn);當(dāng)Ni,K(u)是非均勻基函數(shù)時(shí),p(u)為非均勻有理B樣條
(Non-UniformRationalB-Spline,簡(jiǎn)稱(chēng)NURBS)曲線(xiàn);通過(guò)合理的定義權(quán)系數(shù),NURBS曲線(xiàn)能夠精確地描述二次圓錐曲線(xiàn)。目前已納入到產(chǎn)品形狀定義的工業(yè)標(biāo)準(zhǔn)之中。2023/2/2134曲線(xiàn)設(shè)計(jì)方法的關(guān)鍵在于基函數(shù)的選擇,選擇合適的基函數(shù)能夠使系數(shù)矢量具有更明確的幾何意義,繪圖操作簡(jiǎn)單直觀(guān)?;瘮?shù)和參數(shù)化方法的選擇對(duì)曲線(xiàn)的精度、光順性、局部修改性具有決定性的影響。整個(gè)曲線(xiàn)設(shè)計(jì)方法的改進(jìn)方向是在提高精度、保證光順性的同時(shí)追求靈活的操作、明確的幾何意義和良好的局部修改性。
曲線(xiàn)設(shè)計(jì)結(jié)論:2023/2/21357.6用OpenGL生成曲線(xiàn)和曲面
OpenGL中繪制Bezier曲線(xiàn)曲面是通過(guò)定值器完成的。(參考/OpenGL/credbook/evaluator.html
)1.定義定值器
指定定值器類(lèi)型,每個(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.打開(kāi)定值器voidglEnable(定值器類(lèi)型);3.引用定值器
glEvalCoord(Ui,Vi);
當(dāng)前生成的點(diǎn)的值域注意與1.中取得一致,如果總的值域?yàn)閇0,1],則100個(gè)點(diǎn)組成的曲線(xiàn)上第i點(diǎn)的值域?yàn)?1-0)*i/100。2023/2/2136用OpenGL生成NURBS曲線(xiàn)和曲面
在OpenGL中,GLU函數(shù)庫(kù)提供了一個(gè)NURBS接口。用戶(hù)需要提供的數(shù)據(jù)包括控制點(diǎn)、節(jié)點(diǎn)等數(shù)據(jù),控制點(diǎn)描述曲線(xiàn)的大致形狀,節(jié)點(diǎn)控制B樣條函數(shù)的形狀。繪制一條NURBS曲線(xiàn)的步驟:(1)提供控制點(diǎn)序列和節(jié)點(diǎn)序列;(2)創(chuàng)建一個(gè)NURBS對(duì)象,設(shè)置NURBS對(duì)象屬性;(3)繪制曲線(xiàn);參考/ArticleShow.asp?id=4539&categoryid=8創(chuàng)建一個(gè)NURBS對(duì)象,用如下兩條語(yǔ)句:
GLUnurbsObj*theNurbs;
theNurbs=gluNewNurbsRender();2023/2/2137用OpenGL生成一條NURBS曲線(xiàn)(續(xù))創(chuàng)建對(duì)象后,用如下函數(shù)設(shè)置NURBS對(duì)象屬性:voidgluNurbsProperty(GLUnurbsObj*nobj,GLenumproperty,Glfloatvalue);曲線(xiàn)的繪制是在gluBeginCurve()/gluEndCurve()函數(shù)對(duì)中完成。繪制曲線(xiàn)的函數(shù)為:voidgluNurbsCu
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 海南軟件職業(yè)技術(shù)學(xué)院《衛(wèi)星導(dǎo)航定位原理與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 海北藏族自治州2025年三年級(jí)數(shù)學(xué)第二學(xué)期期末學(xué)業(yè)水平測(cè)試試題含解析
- 寒假安全教育2025年
- 彩印印刷工作總結(jié)
- 2024年四月抗爆空間隱蔽工程裝修委托驗(yàn)收標(biāo)準(zhǔn)
- IT知識(shí)全面解析
- 江西省衛(wèi)生類(lèi)事業(yè)單位競(jìng)聘-財(cái)會(huì)類(lèi)近年考試真題庫(kù)-含答案解析
- 養(yǎng)生專(zhuān)業(yè)培訓(xùn)
- 江西省贛州市四校協(xié)作體2025屆高三適應(yīng)性調(diào)研考試化學(xué)試題含解析
- 天津市河西區(qū)2024-2025學(xué)年高三下學(xué)期數(shù)學(xué)總復(fù)習(xí)質(zhì)量調(diào)查試卷一(解析版)
- 學(xué)校供水管理制度
- 2025年人教版高考?xì)v史總復(fù)習(xí)高中歷史必修二專(zhuān)題知識(shí)點(diǎn)梳理總結(jié)
- +第12課《跟著課本拍電影》課件++-2024-2025學(xué)年浙人美版(2024)初中美術(shù)七年級(jí)下冊(cè)+
- 4.2依法履行義務(wù) 課 件 2024-2025學(xué)年統(tǒng)編版道德與法治八年級(jí)下冊(cè)
- 砌筑工職業(yè)技能考試題庫(kù)及答案
- 2025年入團(tuán)的考試試題及答案
- 創(chuàng)新2024年《漢字》教案設(shè)計(jì):漢字與文化的奇妙之旅
- 《智能感知》課件
- 2025年安全教育培訓(xùn)考試題庫(kù)(基礎(chǔ)強(qiáng)化版)應(yīng)急救援知識(shí)試題
- DB31∕T 680.9-2019 城市公共用水定額及其計(jì)算方法 第9部分:其他經(jīng)營(yíng)性服務(wù)業(yè)(菜場(chǎng))
- 2025體育單招英語(yǔ)備考100個(gè)核心動(dòng)詞(精校打印版)
評(píng)論
0/150
提交評(píng)論