直線中點bresenham算法

直線中點bresenham算法

ID:11827551

大?。?68.00 KB

頁數(shù):0頁

時間:2018-07-14

直線中點bresenham算法_第頁
預覽圖正在加載中,預計需要20秒,請耐心等待
資源描述:

《直線中點bresenham算法》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、學生:學號:班級:網(wǎng)絡實驗時間:2012年12月19日報告時間:2012年12月20日系別:計算機系學院:電氣與信息工程學院實驗:直線中點Bresenham算法一:原理1、輸入直線的兩端點p0(x0,y0)和p1(x1,y1)。2、計算初始值△x,△y,d=△x-2△y,x=x0,y=y0。3、繪制點(x,y)判斷d的符號:若d<0,則(x,y)更新為(x+1,y+1),d更新為d+2△x-2△y;否則(x,y)更新為(x+1,y),d更新為d-2△y。4、當直線沒有畫完時,重復步驟3,否則結(jié)束。二:偽代碼voidCTestV

2、iew::myDrawLine(){CClientDCdc(this);dc.MoveTo(20,30);dc.LineTo(200,300);}voidCTestView::OnMydrawline(){//TODO:AddyourcommandhandlercodeheremyDrawLine();}三:截圖實驗:多邊形有效邊表填充算法一:原理多邊形的有效邊表填充算法的基本原理是按照掃描線從小到大的移動順序,計算當前掃描線與多邊形各邊的交點,然后把這些交點按x值遞減的順序進行排序、配對,以確定填充區(qū)間,然后用指定顏色點亮填

3、充區(qū)間內(nèi)的所有像素,即完成填充工作。1、定義多邊形2、初始化桶3、建立邊表4、多邊形填充1)對每一條掃描線,將該掃描線上的邊結(jié)點插入到臨時AET表中,HeadE.2)對臨時AET表排序,按照x遞增的順序存放。3)根據(jù)AET表中邊表結(jié)點的ymax拋棄掃描完的邊結(jié)點,即ymax>=scanline4)掃描AET表,填充掃描線和多邊形相交的區(qū)間。二:偽代碼classCscanfillView:publicCView{protected://僅從序列化創(chuàng)建CscanfillView();DECLARE_DYNCREATE(Cscanf

4、illView)//屬性public:CscanfillDoc*GetDocument()const;//操作public:voidPolygonFill();//上閉下開填充多邊形voidCreatBucket();//建立桶節(jié)點voidEt();//構(gòu)造邊表voidAddEdge(AET*);//將邊插入AET表voidEdgeOrder();//對AET表進行排序//重寫public:virtualvoidOnDraw(CDC*pDC);//重寫以繪制該視圖virtualBOOLPreCreateWindow(CREAT

5、ESTRUCT&cs);protected:virtualBOOLOnPreparePrinting(CPrintInfo*pInfo);virtualvoidOnBeginPrinting(CDC*pDC,CPrintInfo*pInfo);virtualvoidOnEndPrinting(CDC*pDC,CPrintInfo*pInfo);//實現(xiàn)public:virtual~CscanfillView();#ifdef_DEBUGvirtualvoidAssertValid()const;virtualvoidDump(

6、CDumpContext&dc)const;#endifprotected:COLORREFGetColor;//調(diào)色板CPointPoint[7];//定義多邊形Bucket*HeadB,*CurrentB;//桶的頭結(jié)點和當前節(jié)點AETE[Number],*HeadE,*CurrentE,*T1,*T2;//有效邊表的節(jié)點//生成的消息映射函數(shù)protected:DECLARE_MESSAGE_MAP()public:afx_msgvoidOnMenuAET();};#ifndef_DEBUG//scanfillView.

7、cpp中的調(diào)試版本inlineCscanfillDoc*CscanfillView::GetDocument()const{returnreinterpret_cast(m_pDocument);}#endif三:截圖實驗:梁友棟-Barsky直線裁剪算法一:原理梁友棟-Barsky算法進行線段裁剪的步驟(1)輸入直線段的兩端點坐標以及窗口的四條邊界坐標。(2)若Δx=0則p1=p2=0。進一步判斷是否滿足q1<0或q2<0若滿足則該直線段不在窗口內(nèi)轉(zhuǎn)(7)。否則滿足q1>0且q2>0

8、則進一步計算u1和u2。轉(zhuǎn)(5)。(3)若Δy=0則p3=p4=0。進一步判斷是否滿足q3<0或q4<0若滿足則該直線段不在窗口內(nèi)轉(zhuǎn)(7)。否則滿足q1>0且q2>0則進一步計算u1和u2。轉(zhuǎn)(5)。(4)若上述兩條均不滿足,則有pk≠0(k=1,2,3,4)。此

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。