freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

計(jì)算機(jī)圖形學(xué)電子教案-資料下載頁

2025-05-14 21:47本頁面
  

【正文】 制多邊形頂點(diǎn)。 ?若生成的曲線通過給定數(shù)據(jù)點(diǎn),則首先必須根據(jù)給定數(shù)據(jù)點(diǎn)反求控制多邊形的頂點(diǎn),然后再代入曲線。 ? 非均勻 B樣條曲線的實(shí)現(xiàn) 給定數(shù)據(jù)點(diǎn) di(i=0,1,…,n 1)就是控制多邊形的頂點(diǎn)。 對于開口曲線 , n個(gè)數(shù)據(jù)點(diǎn)只畫 n3段曲線,需 n2個(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ù)為: 用 Hartley- Judd方法,即所畫曲線段對應(yīng)的控制多邊形的長度與總控制多邊形的長度之比確定節(jié)點(diǎn)參數(shù)。 nkkiuunKssKsjjiKijjii ,2,111111 ????????? ???????????? ,U0=U1=U2=0; UK, UK+ 1, … , Un; Un+1=Un+2=Un+3=1; ? 不過點(diǎn)三次非均勻 B樣條曲線 對于閉合曲線 , 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= 0U1U2UKUK+ 1… Un+ 3Un+4Un+5Un+6=1 各節(jié)點(diǎn)的參數(shù)值采用 Hartley- Judd方法。計(jì)算出節(jié)點(diǎn)參數(shù)后,就可以計(jì)算基函數(shù) Ni,K(u)的值,然后用曲線方程計(jì)算各段曲線上的點(diǎn) 對于過點(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): ????3, )()(iijKjj uNdupn個(gè)數(shù)據(jù)點(diǎn) , 反求出 n+2個(gè)控制頂點(diǎn) , 畫 n1段曲線 , 需 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= 0U1U2UKUK+ 1…U n+ 2Un+3Un+4Un+5=1 i=1,2,?? ,n+5, L為包含附加段在內(nèi)的總長 。 LUUiii11?? ??=? 過點(diǎn)三次非均勻 B樣條曲線 根據(jù)節(jié)點(diǎn)矢量計(jì)算基函數(shù) Ni,K(u)的值,代入曲線方程可以計(jì)算 n個(gè)已知的曲線上的點(diǎn),得如下方程: ??? ?? ?? 3 3,3 )()( i ij iiKjji puNdup],[],[ 2343 ??? ?? nii uuuuu 1,1,0 -ni ??寫成矩陣形式如下: ?????????????????????????????????????????????????????????????????????????????1n2n3,1n1n2n1033,00n1n212n3,n2n3,1n1n3,n1n3,1n1n3,2n43,343,243,133,233,1d)u(Npppd)u(Npdddd)u(N)u(N)u(N)u(N)u(N)u(N)u(N)u(N)u(N)u(N????對于開口曲線 , d0=P0, dn+1=Pn1,上述方程組是“追趕法”能夠求解的三對角方程。求出 d0,d1,……,d n,dn+1共 n+2個(gè)控制頂點(diǎn),即可以畫出 n1曲線。 ( 閉合曲線省略 ) ?????niKiiniKiiiuNuNdup0,0,)()()(??wi, 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樣條 (NonUniform Rational BSpline , 簡稱 NURBS)曲線; ?通過合理的定義權(quán)系數(shù) , NURBS曲線能夠精確地描述二次圓錐曲線 。 目前已納入到產(chǎn)品形狀定義的工業(yè)標(biāo)準(zhǔn)之中 。 ?曲線設(shè)計(jì)方法的關(guān)鍵在于 基函數(shù)的選擇 ,選擇合適的基函數(shù)能夠使系數(shù)矢量具有更明確的 幾何意義 ,繪圖操作簡單直觀。 ?基函數(shù)和參數(shù)化方法的選擇對曲線的精度、光順性、局部修改性具有決定性的影響。 ?整個(gè)曲線設(shè)計(jì)方法的改進(jìn)方向是在提高精度、保證光順性的同時(shí)追求 靈活的操作、明確的幾何意義和良好的局部修改性 。 iniiuu ?? 0)( aP = ????3, )()(iijKjj uNdup???ninii tBt1, )()( dp? 曲線設(shè)計(jì)結(jié)論 : 用 OpenGL生成曲線和曲面 在 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對象,設(shè)置 NURBS對象屬性; ( 3)繪制曲線; 創(chuàng)建一個(gè) NURBS對象 , 用如下兩條語句: GLUnurbsObj *theNurbs; theNurbs=gluNewNurbsRender( ); 創(chuàng)建對象后 , 用如下函數(shù)設(shè)置 NURBS對象屬性: void gluNurbsProperty(GLUnurbsObj * nobj, GLenum property, Glfloat value); 曲線的繪制是在 gluBeginCurve( )/gluEndCurve( )函數(shù)對中完成 。 繪制曲線的函數(shù)為: void gluNurbsCurve (GLUnurbsObj * nobj, GLint nknots, GLfloat * knot, GLint stride, GLfloat *ctlarray, GLint order, GLenum type); 具體參數(shù)含義在下面程序?qū)崿F(xiàn)中解釋。 詳見 OpenGL專著有關(guān)說明。 void CView::DrawNurbsCurve( ) { GLfloat controlPoints[7][3] = {{, , }, {, , }, {, , }, {, , }, { , , }, {, , },{, , } }。//給定控制點(diǎn) GLfloat knots[14] = { , , , , , , , , , , , , , }。 //節(jié)點(diǎn) glColor3f (, , )。 GLUnurbsObj *theNurb。 //創(chuàng)建 NURBS對象 theNurb = gluNewNurbsRenderer( )。 gluNurbsProperty (theNurb, GLU_SAMPLING_TOLERANCE, )。 //屬性 // GLU_SAMPLING_TOLERANCE表示邊緣最大像素長度 glNewList(1, GL_COMPILE)。 gluBeginCurve(theNurb)。 gluNurbsCurve(theNurb, /*NURBS曲線對象 */ 14, /*參數(shù)區(qū)間節(jié)點(diǎn)數(shù)目=控制點(diǎn)數(shù)+ NURBS曲線階數(shù) */ knots, /*節(jié)點(diǎn) */ 3, /*曲線控制點(diǎn)之間的偏移量 */ (float*)controlPoints, /*控制點(diǎn) */ 7, /*曲線階數(shù) */ GL_MAP1_VERTEX_3)。 /*曲線類型 */ gluEndCurve(theNurb)。 glEndList()。 glCallList(1)。 } ? 用 OpenGL生成 NURBS曲面 NURBS曲面的繪制與 NURBS曲線的繪制過程是一致的。但曲面是二維參數(shù)曲面,需定義兩個(gè)節(jié)點(diǎn)序列。繪制一張 NURBS曲面的步驟: ( 1)給定控制點(diǎn)序列和節(jié)點(diǎn)序列 ( 2)給出或自動(dòng)生成法矢序列 ( 3)創(chuàng)建 NURBS對象并確定屬性 ( 4)進(jìn)行光照 ( 5)激活各種所需功能 ( 6)繪制曲面 ( 7)掛起各種已用功能 繪制 NURBS曲面的函數(shù)是: void gluNurbsSurface (GLUnurbsObj * nobj, GLint sknot_count , GLint * sknot, GLint tknot_count , GLint * tknot, GLint s_stride, GLint t_stride,Glfloat *ctlarray, GLint sorder, GLint torder, GLenum type); 參數(shù)含義見書中程序。 曲面實(shí)現(xiàn)代碼較長,參見 ~ 210
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1