中點畫線法程序?qū)崿F(xiàn)_第1頁
中點畫線法程序?qū)崿F(xiàn)_第2頁
中點畫線法程序?qū)崿F(xiàn)_第3頁
中點畫線法程序?qū)崿F(xiàn)_第4頁
中點畫線法程序?qū)崿F(xiàn)_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

學(xué)習(xí)目標(biāo)掌握中點Bresenham畫線法的程序?qū)崿F(xiàn);操作步驟首先建立一個基于MFC應(yīng)用的工程創(chuàng)建一個CP2類用于存放頂點坐標(biāo)創(chuàng)建一個Cline類用于實現(xiàn)畫線算法本章小結(jié)創(chuàng)建MFC工程step1創(chuàng)建MFC工程step2創(chuàng)建MFC工程step3創(chuàng)建MFC工程step4創(chuàng)建MFC工程step5創(chuàng)建MFC工程step6創(chuàng)建MFC工程step7創(chuàng)建MFC工程step8創(chuàng)建MFC工程step9創(chuàng)建MFC工程step10創(chuàng)建MFC工程工程完成后,解決方案資源管理器創(chuàng)建MFC工程類視圖創(chuàng)建CP2類Step1類視圖中,點擊主類后,點擊鼠標(biāo)右鍵,點擊“類”創(chuàng)建CP2類Step2添加類:選擇C++類,點擊“添加”創(chuàng)建CP2類Step2:類名取為CP2,點擊“完成”創(chuàng)建CP2類Step3:出現(xiàn)如圖所示示意圖CP2中需包含兩個成員變量,m_x與m_y來表示點的坐標(biāo),同時添加構(gòu)造函數(shù)對這兩個成員變量賦值。創(chuàng)建CP2類Step4:添加成員變量,點擊“添加變量”創(chuàng)建CP2類Step5:添加成員變量m_x創(chuàng)建CP2類Step6:類似操作添加成員變量m_y創(chuàng)建CP2類Step7:添加帶參數(shù)的構(gòu)造函數(shù)創(chuàng)建CP2類Step7:添加帶參數(shù)的構(gòu)造函數(shù),如圖所示,點擊“完成”創(chuàng)建CP2類Step8:進入類CP2的實現(xiàn)文件P2.cpp中。創(chuàng)建CP2類Step9:在構(gòu)成函數(shù)CP2(doublex,doubley)中實現(xiàn)成員變量m_x與m_y的初始化。創(chuàng)建CLine類Cline類實現(xiàn)畫直線的功能成員變量:直線的起點坐標(biāo)CP2m_P0成員變量:直線的終點坐標(biāo)CP2m_P1成員變量:畫直線的顏色COLORREFm_color成員函數(shù):voidMoveTo(CDC*pDC,CP2P0),其功能是定位到直線的起始點。成員函數(shù):voidLineTo(CDC*pDC,CP2P1),其功能是利用Bresenham算法畫出起始點在m_P0,終點在m_P1的直線。創(chuàng)建CLine類Step1類視圖中,點擊主類后,點擊鼠標(biāo)右鍵,點擊“類”創(chuàng)建CLine類Step2:選中C++類,單擊“添加(A)”按鈕,創(chuàng)建CLine類Step3:輸入類名“CLine”。創(chuàng)建CLine類Step4:添加成員變量,點擊“添加變量(B)”創(chuàng)建CLine類Step5:添加成員變量CP2m_P0,點擊“完成”創(chuàng)建CLine類Step6:類似操作,添加成員變量CP2m_P1,點擊“完成”創(chuàng)建CLine類Step7:類似操作,添加成員變量COLORREFm_color,在“變量類型(V)”中輸入COLORREF,點擊“完成”創(chuàng)建CLine類Step8:添加成員函數(shù),點擊“添加函數(shù)(U)”創(chuàng)建CLine類Step9:成員函數(shù)MoveTo,第一個參數(shù)類型CDC*,第二個參數(shù)類型CP2,輸入?yún)?shù)名后點擊“添加(A)”。創(chuàng)建CLine類Step10:完成成員函數(shù)MoveTo的功能。在Line.cpp文件中的MoveTo函數(shù)中添加“m_P0=P0;”的語句,使成員變量m_P0指向直線的起始點。創(chuàng)建CLine類Step11:添加成員函數(shù),點擊“添加函數(shù)(U)”創(chuàng)建CLine類Step12:成員函數(shù)LineTo,第一個參數(shù)類型CDC*,第二個參數(shù)類型CP2,輸入?yún)?shù)名后點擊“添加(A)”。創(chuàng)建CLine類Step13:添加#include“math.h”和#defefineRound(x)floor((x)+05)用于取整。完善成員函數(shù)LineTo的功能。教材P92的程序在View中實現(xiàn)畫線功能在CBresenhamLineView類中實現(xiàn)獲取直線的兩個端點坐標(biāo)。創(chuàng)建兩個成員變量CP2m_P0;CP2m_P1來保存直線的兩個端點坐標(biāo)。CBresenhamLineView中實現(xiàn)畫線功能。在View中實現(xiàn)畫線功能Step1:CBresenhamLineView類中添加成員變量CP2m_P0。選中CBresenhamLineView,單擊右鍵在View中實現(xiàn)畫線功能Step2:CBresenhamLineView類中添加成員變量CP2m_P0。在View中實現(xiàn)畫線功能Step3:CBresenhamLineView類中添加成員變量CP2m_P1。在View中實現(xiàn)畫線功能Step4:CBresenhamLineView類中添加成員變量CRectm_rect。在View中實現(xiàn)畫線功能Step5:

修改CBresenhamLineView類中的OnDraw函數(shù),得到畫圖的區(qū)域。在View中實現(xiàn)畫線功能Step6:在View中畫線需要執(zhí)行的操作步驟按下鼠標(biāo)左鍵,產(chǎn)生WM_LButtonDown事件,確定直線的起始點。按下鼠標(biāo)左鍵后,拖動鼠標(biāo)一段距離,就是直線的長度。釋放鼠標(biāo),

產(chǎn)生WM_LButtonUp事件,確定直線的終點。在View中實現(xiàn)畫線功能Step7:

獲取CBresenhamLineView類的鼠標(biāo)左鍵按下的事件,在View中實現(xiàn)畫線功能Step9:

在CBresenhamLineView類的屬性中的消息項中,點擊WM_LButtonDown在View中實現(xiàn)畫線功能Step10:完成CBresenhamLineView類WM_LButtonDown的事件處理。在View中實現(xiàn)畫線功能Step11:

在CBresenhamLineView類的

溫馨提示

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

評論

0/150

提交評論