2Bezier曲線計(jì)算機(jī)圖形學(xué)_第1頁(yè)
2Bezier曲線計(jì)算機(jī)圖形學(xué)_第2頁(yè)
2Bezier曲線計(jì)算機(jī)圖形學(xué)_第3頁(yè)
2Bezier曲線計(jì)算機(jī)圖形學(xué)_第4頁(yè)
2Bezier曲線計(jì)算機(jī)圖形學(xué)_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所1Chapter8

Three-DimensionalObjectRepresentations貝塞爾曲線曲面(BézierCurvesandSurfaces)Bézier曲線和曲面法國(guó)工程師Bézier使用逼近樣條為雷諾汽車公司設(shè)計(jì)汽車外形而開發(fā)。數(shù)學(xué)基礎(chǔ)簡(jiǎn)單,容易實(shí)現(xiàn)

Bézier樣條在各種CAD系統(tǒng)、大多數(shù)圖形系統(tǒng)、相關(guān)繪圖和圖形軟件包中有廣泛應(yīng)用BézierCurves定義控制點(diǎn):

pk=(xk,yk,zk),k=0,1,···n.構(gòu)造P(u)Bk,n(u)是Bernstein(伯恩斯坦)函數(shù):C(n,k)是二項(xiàng)式系數(shù):Prescribed:00=1,0!=1.Bernsteinbasis4Vectorequation2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所5兩點(diǎn)創(chuàng)建1次Bezier曲線n=1,

矩陣方程:P0

到P1直線。2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所6TheTwoFirstDegreeBlendingFunctions1次Bernstein函數(shù)2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所7Whenn=2, Thematrixformis:Thisisaparabola(拋物線)startingatP0andendingatP1.And:3點(diǎn)創(chuàng)建2次Bezier曲線2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所8BlendingFunctions

andtheCurveExamples2次Bernstein函數(shù)2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所93次

BézierCurvesFourpointscanspecifyingacubicBéziercurve.P(t)=B0,3P0+B1,3P1+B2,3

P2+B3,3P3 =(1-t)3P0+3t(1-t)2P1+3t2(1-t)P2+t3P3 (0

t

1)2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所103次BézierCurves矩陣表達(dá)式2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所11 Thatis:代數(shù)形式Asarule,aBézierCurveisapolynomialofdegreeonelessthanthenumberofcontrolpointsused:

twopointsgenerateastraightline,

threepointsgenerateaparabola,

fourpointsacubiccurve,andsoforth.UkUn-k2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所13已知Bezier曲線特征多邊形的頂點(diǎn)P0(1,2)、P1(3,4)、P2(5,6)、P3(7,8),求Bezier曲線的參數(shù)方程P(t)(矩陣表示);計(jì)算t=0.5,曲線上點(diǎn)P(0.5)

重要試從Bèzier曲線的定義式寫出三次Bèzier曲線的矩陣表示。(本題15分,只寫出結(jié)果者得2分)UkUn-k2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所14Examplesprog8BezierCurve.exe2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所15BézierCurves的性質(zhì)EndpointInterpolation(端點(diǎn)插值)AffineInvariance(仿射不變性)Convex-hullProperty(凸包性)LinearPrecision(線性)Variation-diminishingProperty(變差縮減性)DerivativesofBézierCurves(導(dǎo)數(shù))掌握2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所16端點(diǎn)插值EndpointInterpolationABézierCurvedosenotgenerallypassthrough,orinterpolate,allofthecontrolpoints,butitalwaysinterpolatesthefirstandthelastpoint.2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所17P0P3P2P1Q0Q3Q1Q2AffineInvariance(仿射不變性)2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所18Convex-hullProperty(凸包性)ABézierCurveneverwandersoutsideitsconvexhull.2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所19LinearPrecision(線性)Ifallofthecontrolpointsareplacedinastraightline,theirconvexhullcollapses(壓縮)toaline.TheBézierCurveistherefore“trapped”insidethishullandsomustalsobeastraightline.2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所20Variation-diminishingProperty

(變差縮減性)2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所21DerivativesofBézierCurves導(dǎo)數(shù)ThefirstderivativeofaBézierCurveisSothevelocity(thefirstderivative)isanotherBézierCurve,builtonanewsetofcontrolvectors

pk.2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所22Whent=0,t=1,onecanevaluatethederivativesatthestartingpointandtheendingpoint:Thus,theslopeatthebeginningofthecurveisalongthelinejoiningthefirsttwocontrolpoints,andtheslopeattheendisalongthelinejoiningthelasttwoendpoints.2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所23因此,曲線在起點(diǎn)處的切線方向是第一第二控制點(diǎn)的連線,長(zhǎng)度是其n倍;曲線在終點(diǎn)處的切線方向是倒數(shù)第二第一控制點(diǎn)的連線,長(zhǎng)度是其n倍。端點(diǎn)的二階導(dǎo)數(shù)取決于與其最靠近的三個(gè)控制點(diǎn),與其他點(diǎn)無關(guān)。事實(shí)上,r階導(dǎo)矢只與(r+1)個(gè)相鄰點(diǎn)有關(guān),與更遠(yuǎn)點(diǎn)無關(guān)。

2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所24使用BézierCurves設(shè)計(jì)

ClosedBéziercurve(封閉)Topassclosertoagivenpoint(靠近曲線)PiecinglowerdegreeBéziercurvesections

(Bezier曲線拼接)2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所25ClosedBéziercurve2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所26ToPassClosertoGivenPoint2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所27Bezier曲線拼接G0:Pn=Q0;(ai=

Pi-

Pi-1

bj=

Qj-

Qj-1)G1:b1=

an

,

thatis,

Pn-1,

Pn=Q0

,

Q1arecollinear.C1:b1=an,thatis,

Pn=Q0andQ1=Pn+(Pn-Pn-1).C2:basedonC1,andQ2=Pn-2+4(Pn-Pn-1).2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所28Chapter8

Three-DimensionalObjectRepresentations貝塞爾曲面(BézierSurfaces)2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所29張量積Bezier曲面定義 Withpj,kspecifyingthelocationofthe(m+1)by(n+1)controlpoints.2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所30MatrixForm2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所31ExampleBézierSurfaceconstructedform=2,n=2.prog8Beziersurf.exe2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所32BézierSurfacesHavetheSame PropertiesasBézierCurves.DoublecubicBéziersurfacepatchanditsboundary10P20P01P11P21P31P02P22P12P32P13P23P00)0,0(PP=30)0,1(PP=03)1,0(PP=33)1,1(PP=)0,(uP)1,(uP),0(vP),1(vP2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所33用OpenGL畫Bezier曲線Bezier曲線由以下函數(shù)定義:

voidglMap1{fd}(GLenumtarget,TYPEu1,TYPEu2,GLintstride,GLintorder,constTYPE*points);GLenumtarget,枚舉型變量,指定控制點(diǎn)維數(shù):GL_MAP1_VERTEX_3、GL_MAP1_VERTEX_4。TYPEu1、TYPEu2,指定參數(shù)的最小、最大值。constTYPE*points,指向控制點(diǎn)數(shù)組的指針。GLintstride,指出在數(shù)組constTYPE*points中,從一個(gè)控制點(diǎn)到下一個(gè)控制點(diǎn)之間的數(shù)據(jù)個(gè)數(shù)(位移量)。GLintorder,控制點(diǎn)個(gè)數(shù),即Bezier曲線的階數(shù),多項(xiàng)式次數(shù)+1。2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所34定義了Bezier曲線后,進(jìn)行計(jì)算之前,需用target的值為參數(shù)調(diào)用glEnable()激活(glDisable()取消)。用以下函數(shù)計(jì)算曲線上的點(diǎn):

voidglEvalCoord1{fd}{v}(TYPEu);TYPEu的取值在TYPEu1、TYPEu2之內(nèi)。該函數(shù)會(huì)將參數(shù)規(guī)范化。例子:源代碼運(yùn)行2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所35定義并激活貝塞爾曲線后,亦可用定義網(wǎng)格(Grid,均勻間隔坐標(biāo))的方式在參數(shù)區(qū)間均勻取值計(jì)算曲線上點(diǎn)的坐標(biāo)。定義一維網(wǎng)格:

voidglMapGrid1{fd}(GLintn,TYPEu1,TYPEu2);GLintn,參數(shù)的均勻分割數(shù)。一維求值并繪制曲線:

voidglEvalMesh1(GLenummode,GLintp1,GLintp2);GLenummode,取值GL_POINT或GL_LINE,畫點(diǎn)或劃線。GLintp1、GLintp2,參數(shù)的對(duì)應(yīng)范圍。2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所36用OpenGL畫Bezier曲面Bezier曲面由以下函數(shù)定義:

voidglMap2{fd}(GLenumtarget,TYPEu1,TYPEu2,GLintustride,GLintuorder,TYPEv1,TYPEv2,GLintvstride,GLintvorder,TYPE*points);GLenumtarget,枚舉型變量,指定控制點(diǎn)維數(shù):GL_MAP1_VERTEX_3、GL_MAP1_VERTEX_4。TYPEu1、TYPEu2,TYPEv1、TYPEv2指定參數(shù)u和v的最小、最大值。constTYPE*points,指向控制點(diǎn)數(shù)組的指針。GLintustride、GLintvstride,分別指出在數(shù)組constTYPE*points中,從一個(gè)控制點(diǎn)到下一個(gè)控制點(diǎn)之間的數(shù)據(jù)個(gè)數(shù)(位移量)。GLintuorder、GLintvorder,分別指出兩個(gè)方向的控制點(diǎn)個(gè)數(shù),即其各自的階數(shù),多項(xiàng)式次數(shù)+1。2023/9/2交通運(yùn)輸學(xué)院CAD/CAM研究所37定義了Bezier曲面后,進(jìn)行計(jì)算之前,需用target的值為參數(shù)調(diào)用glEnable()激活(glDisable()取消)。用以下函數(shù)計(jì)算曲面上的點(diǎn):

voidglEvalCoord2{fd}{v}(TYPEu,TYPEv);TYPEu、TYPEv的取值分別在TYPEu1、TYPEu2和TYPEv1,TYPEv2之內(nèi)。該函數(shù)會(huì)將參數(shù)規(guī)范化。例子:源代碼運(yùn)行20

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論