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

正文內(nèi)容

b233zier曲線的細(xì)分技術(shù)畢業(yè)論文-資料下載頁

2025-06-28 07:53本頁面
  

【正文】 DisplayFunc() glutPostRedisplay() glutReshapeFunc() glutTimerFunc() glutKeyboardFunc() glutMouseFunc()?!。?)創(chuàng)建復(fù)雜的三維物體。這些和aux庫的函數(shù)功能相同。創(chuàng)建網(wǎng)狀體和實(shí)心體。如glutSolidSphere()、glutWireSphere()等。在此不再敘述。 (4)菜單函數(shù)。創(chuàng)建添加菜單的函數(shù)GlutCreateMenu()、glutSetMenu()、glutAddMenuEntry()、glutAddSubMenu() 和glutAttachMenu()?!。?)程序運(yùn)行函數(shù),glutMainLoop()。5 程序設(shè)計(jì)與算法實(shí)現(xiàn) 主要算法我們將借助VS2010平臺所提供的OpenGl實(shí)現(xiàn)我們的算法,以下是程序的基本流程。1. 設(shè)置初始的B233。zier曲線細(xì)分參數(shù)t。2. 設(shè)置初始的B233。zier曲線控制頂點(diǎn)。從而生成一張B233。zier曲線。3. 用戶通過控制鍵輸入要進(jìn)行的操作進(jìn)行B233。zier曲線細(xì)分的操作。 程序流程圖如圖51所示: 開始 輸入控制點(diǎn)并生成B233。zier曲線繼續(xù)?細(xì)分后的曲線 細(xì)分操作 初始參數(shù)t 細(xì)分后的曲線 結(jié)束 圖51 流程圖 使用C++語言實(shí)現(xiàn)該算法以下是使用C++語言對本文中的算法進(jìn)行實(shí)現(xiàn)。首先我們需要對控制頂點(diǎn)進(jìn)行輸入存儲,即需要一個(gè)Ctrlpoints[0][N_Ctrlpoints][0]的三維數(shù)組來儲存所有的控制頂點(diǎn)。其具體代碼片段如下:void mouse( int button , int state , int x , int y ){ float wx , wy 。 // 把鼠標(biāo)的位置逆向變換到世界坐標(biāo)系 wx = (*x)/ (float)(WIDTH1) 。 wy = ( *(HEIGHT 1y) ) / (float)(HEIGHT1) 。 if( button==GLUT_LEFT_BUTTON ) { switch( state ) { case GLUT_DOWN: action_LeftDown(wx , wy )。 break。 case GLUT_UP: action_LeftUp()。 break。 } }}void addPoint( float wx , float wy ){ // 判斷是否還可以定義更多的控制點(diǎn)? if( N_Ctrlpoints == MAX_Ctrlpoints ) return 。 // 儲存控制點(diǎn)的位置 Ctrlpoints[0][N_Ctrlpoints][0] = wx 。 Ctrlpoints[0][N_Ctrlpoints][1] = wy 。 Temppoints[N_Ctrlpoints][0]=Ctrlpoints[0][N_Ctrlpoints][0]。 Temppoints[N_Ctrlpoints][1]=Ctrlpoints[0][N_Ctrlpoints][1]。 N_Ctrlpoints++。 DrawPoints()。 if(N_Ctrlpoints1) DrawCurve()。}因?yàn)榧?xì)分的需要我們要輸入一個(gè)細(xì)分的參數(shù)t(0t1)cout請輸入細(xì)分參t (0~1):endl。 cincsT。 while(csT0 || csT1) { cout輸入超界!請重新輸入細(xì)分參數(shù) t (0~1):\nendl。 cincsT。 }當(dāng)我們將輸入的點(diǎn)進(jìn)行存儲后我們要進(jìn)行控制多邊形和B233。zier曲線的繪制工作,其具體代碼片段如下:void DrawPoints() //對控制多邊形的繪制{ int i,j。 glPointSize()。 glColor3f( , , )。 glBegin(GL_POINTS)。 for(j=0。jN_Ctrlpoints。j++) glVertex2f(Temppoints[j][0],Temppoints[j][1])。 glEnd()。 glColor3f( , , )。 glBegin(GL_LINE_STRIP)。 for(j=0。jN_Ctrlpoints。j++) glVertex2f(Temppoints[j][0],Temppoints[j][1])。 glEnd()。 glutPostRedisplay()。 glFlush()。}void DrawCurve() //對B233。zier曲線進(jìn)行繪制{ int kk,i。 float interval = 1/(float)MESH。 float t = 0。 bPoints[0][0] = Temppoints[0][0]。 bPoints[0][1] = Temppoints[0][1]。 bPoints[MESH1][0] = Temppoints[N_Ctrlpoints1][0]。 bPoints[MESH1][1] = Temppoints[N_Ctrlpoints1][1]。 for(kk=1 。 kkMESH1 。 kk++ ) { t+=interval。 BezierPoint( kk, t)。 } glColor3f( , , )。 glBegin( GL_LINE_STRIP )。 for( i=0 。 iMESH 。 i++ ) glVertex2f( bPoints[i][0], bPoints[i][1] )。 glEnd()。 glutPostRedisplay()。 glFlush()。}因?yàn)槲覀円獙⒃瓉淼那€進(jìn)行細(xì)分,從而生成兩個(gè)曲線。那么也就是說當(dāng)我們輸入一個(gè)由N個(gè)控制點(diǎn)生成的B233。zier曲線,我們進(jìn)行細(xì)分后就要生成兩個(gè)N個(gè)控制點(diǎn)生成的B233。zier曲線,控制點(diǎn)的數(shù)量由N個(gè)變?yōu)?N個(gè)但是由于有一個(gè)點(diǎn)是公用的所有實(shí)際的點(diǎn)的個(gè)數(shù)為2N1個(gè)。其具體代碼片段如下:void xifen(){ int i,j。 for(i=0。iN_Ctrlpoints1。i++) for(j=0。j(N_Ctrlpointsi)。j++) { Ctrlpoints[i+1][j][0]=()*Ctrlpoints[i][j][0]+csT*Ctrlpoints[i][j+1][0]。 Ctrlpoints[i+1][j][1]=()*Ctrlpoints[i][j][1]+csT*Ctrlpoints[i][j+1][1]。 }。 for(i=0。iN_Ctrlpoints。i++) { Temppoints[i][0]=Ctrlpoints[0][i][0]。 Temppoints[i][1]=Ctrlpoints[0][i][1]。 } for(i=0。iN_Ctrlpoints。i++) { Apoints[i][0]=Ctrlpoints[i][0][0]。 Apoints[i][1]=Ctrlpoints[i][0][1]。 } for(i=0。iN_Ctrlpoints。i++) { Bpoints[i][0]=Ctrlpoints[i][N_Ctrlpointsi1][0]。 Bpoints[i][1]=Ctrlpoints[i][N_Ctrlpointsi1][1]。 } DrawCurve()。 XFDrawPoints()。}根據(jù)功能的需要我們要把細(xì)分后的兩個(gè)B233。zier曲線分別的顯示出來,從而證明了我們的軟件的細(xì)分功能。其具體代碼片段如下:void PressDrawPoints1()//顯示前段細(xì)分曲線{ int i。 for(i=0。iN_Ctrlpoints。i++) { Temppoints[i][0]=Apoints[i][0]。 Temppoints[i][1]=Apoints[i][1]。 } DrawPoints()。 DrawCurve1()。}void PressDrawPoints2()//顯示后段細(xì)分曲線{ int i。 for(i=0。iN_Ctrlpoints。i++) { Temppoints[i][0]=Bpoints[i][0]。 Temppoints[i][1]=Bpoints[i][1]。 } DrawPoints()。 DrawCurve2()。}至此,我們已經(jīng)完成了B233。zier曲線細(xì)分的控制多邊形和曲線的繪制工作。6 程序調(diào)試與維護(hù) 程序操作 按照任務(wù)書的要求,本文論述了一個(gè)B233。zier曲線細(xì)分算法的設(shè)計(jì)程序,能夠直觀的與用戶進(jìn)行交互,并輸出數(shù)據(jù)點(diǎn)的信息。在VS2010上的界面如下圖所示,實(shí)現(xiàn)B233。zier曲線的繪制和細(xì)分技術(shù)的使用的流程: (1)輸入細(xì)分參數(shù)t (0t1)。如圖61所示。 圖61 細(xì)分參數(shù)t的輸入界面 (2)使用鼠標(biāo)進(jìn)行原B233。zier曲線控制頂點(diǎn)的輸入,并且繪制出控制多邊形和B233。zier曲線。如圖62所示。 圖 62 初始曲線的繪制 (3)進(jìn)行細(xì)分操作是我們可以通過鍵盤輸入X鍵進(jìn)行操作這樣我們就可以對原B233。zier曲線進(jìn)行細(xì)分。如圖63所示。圖 63 細(xì)分操作 (4)在我們進(jìn)行細(xì)分操作后根據(jù)任務(wù)書的要求我們要將細(xì)分出來的曲線進(jìn)行分別顯示。這里我們需要輸入1鍵顯示前段細(xì)分曲線;輸入2鍵顯示后段細(xì)分線輸入0鍵還原成進(jìn)行細(xì)分操作后的曲線。如圖64,圖65所示。圖 64 前段細(xì)分曲線圖65 后段細(xì)分曲線(5) 當(dāng)我們想進(jìn)行新的曲線輸入的時(shí)候可以輸入C鍵進(jìn)行清屏動作,然后重新輸入。(6) 當(dāng)輸入Q鍵是程序關(guān)閉,結(jié)束使用。7 結(jié)論本設(shè)計(jì)方案達(dá)到了任務(wù)書的要求,B233。zier曲線細(xì)分技術(shù)算法進(jìn)行了證明,并完成了程序用于實(shí)現(xiàn)該算法,并且在證明的最后用若干實(shí)例支持了本文中所闡述的方法的正確性。計(jì)算機(jī)輔助幾何造型設(shè)計(jì)是計(jì)算機(jī)圖形學(xué)和等幾何分析領(lǐng)域的一個(gè)備受關(guān)注的研究領(lǐng)域,具有很強(qiáng)的理論意義和實(shí)際應(yīng)用價(jià)值。B233。zier曲線的細(xì)分技術(shù)在工業(yè)制造中占有重要地位。本文實(shí)現(xiàn)了B233。zier曲線的細(xì)分技術(shù),研究了細(xì)分技術(shù)設(shè)計(jì)方法,文中的若干實(shí)例驗(yàn)證了本文方法的有效性。隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,人們渴望自然和諧的人機(jī)交互。我們采用的OpenGl圖形程序接口 ,實(shí)現(xiàn)了我們所提出B233。zier曲線的細(xì)分技術(shù)的程序,具有一定的工業(yè)設(shè)計(jì)實(shí)際使用價(jià)值。論文主要完成了三個(gè)工作:(1)對B233。zier曲線進(jìn)行了分析。(2)實(shí)現(xiàn)了B233。zier曲細(xì)分技術(shù)的方法。(3)使用OpenGl圖形程序接口對我們提出的方法進(jìn)行了實(shí)現(xiàn),并且對產(chǎn)生的樣例進(jìn)行了分析,并進(jìn)行了一些擴(kuò)展研究。由于時(shí)間、水平和經(jīng)驗(yàn)有限,在高次B233。zier曲線的細(xì)分等方面仍有不足之處,有改進(jìn)的余地。這次畢業(yè)設(shè)計(jì)對于我來說,既是一次機(jī)遇,又是一次挑戰(zhàn)。通過這次的畢業(yè)設(shè)計(jì),我學(xué)到了很多東西。通過實(shí)際工程的設(shè)計(jì)也使我了解到書本知識和實(shí)際應(yīng)用的差別。在實(shí)際應(yīng)用中遇到很多的問題,這都需要我對問題進(jìn)行具體的分析,并一步一步地去解決它。致謝感謝我的指導(dǎo)老師余正生教授在很忙的情況下,為我提供數(shù)學(xué)證明方面的指導(dǎo),講解畢業(yè)設(shè)計(jì)的要點(diǎn),打開解決問題的思路。他對學(xué)生認(rèn)真負(fù)責(zé)的態(tài)度讓我由衷地感謝。感謝我所在畢業(yè)設(shè)計(jì)答辯組老師的細(xì)心支持,特別是姚金良組長,他細(xì)心的幫我校對了文檔格式的方方面面,在此我對姚老師的辛勤勞動表示衷心的感謝。感謝孫劍夫同學(xué)給予我無私的幫助,他們對我所遇到的難題的解答讓我受益匪淺。感謝母校杭州電子科技大學(xué)的老師與同學(xué)在大學(xué)四年中對我的培養(yǎng)。我會把這些恩情一直銘記在心,并將此文作為母校的獻(xiàn)禮。參考文獻(xiàn)[1] 施法中.計(jì)算機(jī)輔助幾何設(shè)計(jì)與非均勻有理B 樣條[M]. 北京:高等教育出版社,2001:114166.[2] 計(jì)算機(jī)圖形學(xué)與幾何造型導(dǎo)論 [M] 鄧建松 清華大學(xué)出版社 2011.[3] 韓麗娜. B233。zier 曲線修改的一種分割算法[J]. 計(jì)算機(jī)工程與科學(xué):2006,28(7):6065.[4] 馬利莊, 王榮良. 計(jì)算機(jī)輔助造型技術(shù)及其應(yīng)用[M ] . 北京: 科學(xué)出版社,19961100.[5] 陳誼,李海生,宮樹嶺,等.基于B233。zier曲線的DR圖像平滑算法[J].微電子學(xué)與計(jì)算機(jī),2008,25(5):14—18.[6] Donald Heam ,M . Pauline Baker . Computer Graphics [M] . American: Addison wesley,1998:245260.[7] Hill Jr F S. Computer Graphics [M] . Boston:Prentice Hell ,Englewood Cliffs,1990.[8] Forrest A
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1