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

正文內容

計算機圖形學電子教案-資料下載頁

2025-05-14 21:47本頁面
  

【正文】 制多邊形頂點。 ?若生成的曲線通過給定數據點,則首先必須根據給定數據點反求控制多邊形的頂點,然后再代入曲線。 ? 非均勻 B樣條曲線的實現 給定數據點 di(i=0,1,…,n 1)就是控制多邊形的頂點。 對于開口曲線 , n個數據點只畫 n3段曲線,需 n2個節(jié)點參數。而計算 [Ui, Ui+1]上的一點,要用到除它們之外的前 3個和后 3個節(jié)點參數,所以在首尾各添加 3個節(jié)點參數,一共需要 n+4個節(jié)點參數值。為使曲線過給定數據的首末點,令 U0=U1=U2=0;Un+1=Un+2=Un+3=1;全部節(jié)點參數為: 用 Hartley- Judd方法,即所畫曲線段對應的控制多邊形的長度與總控制多邊形的長度之比確定節(jié)點參數。 nkkiuunKssKsjjiKijjii ,2,111111 ????????? ???????????? ,U0=U1=U2=0; UK, UK+ 1, … , Un; Un+1=Un+2=Un+3=1; ? 不過點三次非均勻 B樣條曲線 對于閉合曲線 , n個數據點畫 n段曲線 , 需 n+ 1個節(jié)點參數曲線;首尾各添加 3個節(jié)點參數 , 共 n+ 7個節(jié)點參數 。 由于不過點閉合曲線 , 不通過控制多邊形的首末點 , 全部節(jié)點參數為: U0= 0U1U2UKUK+ 1… Un+ 3Un+4Un+5Un+6=1 各節(jié)點的參數值采用 Hartley- Judd方法。計算出節(jié)點參數后,就可以計算基函數 Ni,K(u)的值,然后用曲線方程計算各段曲線上的點 對于過點曲線,給定的數據點 Pi (i=0,1,…,n 1)是曲線上的點。由曲線方程知,必須先計算出節(jié)點參數,再計算基函數 Ni,K(u)的值,代入曲線方程,才能反算出控制多邊形的頂點: ????3, )()(iijKjj uNdupn個數據點 , 反求出 n+2個控制頂點 , 畫 n1段曲線 , 需 n個節(jié)點參數;首尾各添加 3個節(jié)點參數 , 一共需要 n+6個節(jié)點參數值;在曲線首端重 3段曲線首段的長度 , 在曲線的末端重 3段曲線末段的長度 。 所有節(jié)點參數為: U0= 0U1U2UKUK+ 1…U n+ 2Un+3Un+4Un+5=1 i=1,2,?? ,n+5, L為包含附加段在內的總長 。 LUUiii11?? ??=? 過點三次非均勻 B樣條曲線 根據節(jié)點矢量計算基函數 Ni,K(u)的值,代入曲線方程可以計算 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個控制頂點,即可以畫出 n1曲線。 ( 閉合曲線省略 ) ?????niKiiniKiiiuNuNdup0,0,)()()(??wi, i=0, 1, … , n稱為權因子; Ni,K(u)是 B樣條的基函數 ? 有理 B樣條曲線 非均勻 B樣條考慮節(jié)點分布不勻稱的影響,但與所有已介紹的計算曲線一樣,非均勻 B樣條不能精確表達二次曲線曲面,采用有理 B樣條,可以統(tǒng)一表達自由曲線曲面和二次曲線曲面。 有理 B樣條曲線的表達式為: ?當 Ni,K(u)是均勻基函數時 , p(u)為均勻有理 B樣條曲線; ?當 Ni,K(u)是非均勻基函數時 , p(u)為非均勻有理 B樣條 (NonUniform Rational BSpline , 簡稱 NURBS)曲線; ?通過合理的定義權系數 , NURBS曲線能夠精確地描述二次圓錐曲線 。 目前已納入到產品形狀定義的工業(yè)標準之中 。 ?曲線設計方法的關鍵在于 基函數的選擇 ,選擇合適的基函數能夠使系數矢量具有更明確的 幾何意義 ,繪圖操作簡單直觀。 ?基函數和參數化方法的選擇對曲線的精度、光順性、局部修改性具有決定性的影響。 ?整個曲線設計方法的改進方向是在提高精度、保證光順性的同時追求 靈活的操作、明確的幾何意義和良好的局部修改性 。 iniiuu ?? 0)( aP = ????3, )()(iijKjj uNdup???ninii tBt1, )()( dp? 曲線設計結論 : 用 OpenGL生成曲線和曲面 在 OpenGL中, GLU函數庫提供了一個 NURBS接口。用戶需要提供的數據包括控制點、節(jié)點等數據,控制點描述曲線的大致形狀,節(jié)點控制 B樣條函數的形狀。繪制一條 NURBS曲線的步驟: ( 1)提供控制點序列和節(jié)點序列; ( 2)創(chuàng)建一個 NURBS對象,設置 NURBS對象屬性; ( 3)繪制曲線; 創(chuàng)建一個 NURBS對象 , 用如下兩條語句: GLUnurbsObj *theNurbs; theNurbs=gluNewNurbsRender( ); 創(chuàng)建對象后 , 用如下函數設置 NURBS對象屬性: void gluNurbsProperty(GLUnurbsObj * nobj, GLenum property, Glfloat value); 曲線的繪制是在 gluBeginCurve( )/gluEndCurve( )函數對中完成 。 繪制曲線的函數為: void gluNurbsCurve (GLUnurbsObj * nobj, GLint nknots, GLfloat * knot, GLint stride, GLfloat *ctlarray, GLint order, GLenum type); 具體參數含義在下面程序實現中解釋。 詳見 OpenGL專著有關說明。 void CView::DrawNurbsCurve( ) { GLfloat controlPoints[7][3] = {{, , }, {, , }, {, , }, {, , }, { , , }, {, , },{, , } }。//給定控制點 GLfloat knots[14] = { , , , , , , , , , , , , , }。 //節(jié)點 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, /*參數區(qū)間節(jié)點數目=控制點數+ NURBS曲線階數 */ knots, /*節(jié)點 */ 3, /*曲線控制點之間的偏移量 */ (float*)controlPoints, /*控制點 */ 7, /*曲線階數 */ GL_MAP1_VERTEX_3)。 /*曲線類型 */ gluEndCurve(theNurb)。 glEndList()。 glCallList(1)。 } ? 用 OpenGL生成 NURBS曲面 NURBS曲面的繪制與 NURBS曲線的繪制過程是一致的。但曲面是二維參數曲面,需定義兩個節(jié)點序列。繪制一張 NURBS曲面的步驟: ( 1)給定控制點序列和節(jié)點序列 ( 2)給出或自動生成法矢序列 ( 3)創(chuàng)建 NURBS對象并確定屬性 ( 4)進行光照 ( 5)激活各種所需功能 ( 6)繪制曲面 ( 7)掛起各種已用功能 繪制 NURBS曲面的函數是: 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); 參數含義見書中程序。 曲面實現代碼較長,參見 ~ 210
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1