多边形有效边表填充算法

多边形有效边表填充算法

ID:12450082

大小:369.50 KB

页数:13页

时间:2018-07-17

多边形有效边表填充算法_第1页
多边形有效边表填充算法_第2页
多边形有效边表填充算法_第3页
多边形有效边表填充算法_第4页
多边形有效边表填充算法_第5页
资源描述:

《多边形有效边表填充算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、多边形有效边表填充算法案例效果如下:具体实现:(1)新建MFC项目:(2)分别添加类:AET和Bucket在AET.h中定义#pragmaonceclassAET{public:AET(void);~AET(void);doublex;intyMax;doublek;AET*next;};在Bucket.h中定义#pragmaonce#include"AET.h"classBucket{public:Bucket(void);~Bucket(void);intScanline;AET*p;Bucket*next;};(3)定义菜单(4)添加菜单处理程序(5)定义视图头文件//scanfi

2、llView.h:CscanfillView类的接口//#pragmaonce#include"AET.h"#include"Bucket.h"#defineNumber7classCscanfillView:publicCView{protected://仅从序列化创建CscanfillView();DECLARE_DYNCREATE(CscanfillView)//属性public:CscanfillDoc*GetDocument()const;//操作public:voidPolygonFill();//上闭下开填充多边形voidCreatBucket();//建立桶节点voidE

3、t();//构造边表voidAddEdge(AET*);//将边插入AET表voidEdgeOrder();//对AET表进行排序//重写public:virtualvoidOnDraw(CDC*pDC);//重写以绘制该视图virtualBOOLPreCreateWindow(CREATESTRUCT&cs);protected:virtualBOOLOnPreparePrinting(CPrintInfo*pInfo);virtualvoidOnBeginPrinting(CDC*pDC,CPrintInfo*pInfo);virtualvoidOnEndPrinting(CDC*p

4、DC,CPrintInfo*pInfo);//实现public:virtual~CscanfillView();#ifdef_DEBUGvirtualvoidAssertValid()const;virtualvoidDump(CDumpContext&dc)const;#endifprotected:COLORREFGetColor;//调色板CPointPoint[7];//定义多边形Bucket*HeadB,*CurrentB;//桶的头结点和当前节点AETE[Number],*HeadE,*CurrentE,*T1,*T2;//有效边表的节点//生成的消息映射函数protecte

5、d:DECLARE_MESSAGE_MAP()public:afx_msgvoidOnMenuAET();};#ifndef_DEBUG//scanfillView.cpp中的调试版本inlineCscanfillDoc*CscanfillView::GetDocument()const{returnreinterpret_cast(m_pDocument);}#endif(6)实现视图//scanfillView.cpp:CscanfillView类的实现//#include"stdafx.h"#include"scanfill.h"#include"sc

6、anfillDoc.h"#include"scanfillView.h"#ifdef_DEBUG#definenewDEBUG_NEW#endif#defineROUND(a)int(a+0.5)//定义四舍五入//CscanfillViewIMPLEMENT_DYNCREATE(CscanfillView,CView)BEGIN_MESSAGE_MAP(CscanfillView,CView)//标准打印命令ON_COMMAND(ID_FILE_PRINT,&CView::OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT,&CView::OnFil

7、ePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW,&CView::OnFilePrintPreview)ON_COMMAND(ID_MenuAET,&CscanfillView::OnMenuAET)END_MESSAGE_MAP()//CscanfillView构造/析构CscanfillView::CscanfillView(){//TODO:在此处添加构造代码//设置多边形的个顶点Point[0]

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。