圖形學實驗報告1.doc_第1頁
圖形學實驗報告1.doc_第2頁
圖形學實驗報告1.doc_第3頁
圖形學實驗報告1.doc_第4頁
圖形學實驗報告1.doc_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

西華大學計算機系學生上機實踐報告西華大學計算機系上機實踐報告課程名稱:計算機圖形學年級:上機實踐成績:指導教師:羅曉輝姓名: 上機實踐名稱: 學號:上機實踐日期:上機實踐編號:組號:上機實踐時間:一、 目的理解直線生成的基本原理,掌握幾種基本的直線生成算法,利用C+實現(xiàn)直線生成的DDA畫線算法、中點畫線算法、Bresenham畫線算法 。二、 內容與設計思想內容:(1) 了解直線的生成原理。(2) 掌握幾種基本的直線生成算法:DDA畫線算法、中點畫線算法、Bresenham畫線算法。(3) 利用C+分別實現(xiàn)直線的算法,在屏幕上任意生成一條直線。設計思想:(1) 熟悉教材關于直線的生成原理。(2) 仿照教材的原理,編寫代碼,分別用三種方法實現(xiàn)直線的生成。(3) 調試、編譯、生成程序。三、使用環(huán)境VC+四、核心代碼及調試過程DDA畫線算法:void CGView:Line_DDA(long p1x,long p1y,long p2x,long p2y,CDC *pDC)int i;if(p1x=p2x)/為豎線if(p1y=p2y)for(i=p1y;iSetPixel(p1x,i,m_lPenColor);/在當前窗口畫點elsefor(i=p2y;iSetPixel(p1x,i,m_lPenColor);/在當前窗口畫點return;/為橫線if(p1y=p2y)if(p1x=p2x)for(i=p1x;iSetPixel(i,p1y,m_lPenColor);/在當前窗口畫點elsefor(i=p2x;iSetPixel(i,p1y,m_lPenColor);/在當前窗口畫點return;/為斜線float m=(p2y-p1y)*1.0/(p2x-p1x);float fTemp;if(abs(m)=1)if(p1xp2x)fTemp=p1y-m;for(i=p1x;iSetPixel(i,fTemp+=m,m_lPenColor);/在當前窗口畫點elsefTemp=p2y-m;for(i=p2x;iSetPixel(i,fTemp+=m,m_lPenColor);/在當前窗口畫點return;if(p1yp2y)fTemp=p1x-1/m;for(i=p1y;iSetPixel(fTemp+=1/m,i,m_lPenColor);/在當前窗口畫點elsefTemp=p2x-1/m;for(i=p2y;iSetPixel(fTemp+=1/m,i,m_lPenColor);/在當前窗口畫點中點畫線算法:void CGView:Line_MidPoint(long x1,long y1,long x2,long y2,CDC *pDC) int x,y,a,b,delta1,delta2,d; a=y1-y2; b=x2-x1; d=2*a+b; delta1=2*a;delta2=2*(a+b); x=x1;y=y1; pDC-SetPixel(x,y,m_lPenColor); while(xx2)if(dSetPixel(x,y,m_lPenColor);Bresenham畫線算法void CGView:Line_Bresenham(long x1,long y1,long x2,long y2,CDC *pDC)int dx,dy,x,y,d,d1,d2,inc,tmp; dx=x2-x1; dy=y2-y1; if(dx*dy=0)inc=1;else inc=-1;if(abs(dx)abs(dy)if(dxSetPixel(x,y,m_lPenColor); while(xx2)x+; if(dSetPixel(x,y,m_lPenColor);elseif(dySetPixel(x,y,m_lPenColor); while(yy2)y+;if(dSetPixel(x,y,m_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論