y-x有效边表填充算法.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
y-x有效边表填充算法

有效边表填充算法 一、实验目的与要求: 设计有效边表节点和边表节点数据结构 二、实验描述: 使用有效边算法填充示例多边形 三、实验结果: 四、算法设计: 创建菜单栏,添加函数。 在VC++的class view 界面,新建两个类,VET和Bucket。其中AET类用于建立有效边表和边表节点,Bucket类用来建立桶节点。 AET.h文件。 class AET { public: AET(); virtual ~AET(); double x; int yMax; double k; AET *next; }; Bucket.h文件 #include AET.h class Bucket { public: Bucket(); virtual ~Bucket(); int ScanLine; AET *p; Bucket *next; }; CExp2View.h文件。其中添加了成员变量和函数的声明,以及库的导入。 #include AET.h #include Bucket.h #define Number 7 添加的成员变量和函数声明如下: public: void PolygonFill(); void CreatBucket(); void Et(); void AddEdge(AET *); void EdgeOrder(); protected: COLORREF GetColor; CPoint Point[7]; Bucket *HeadB,*CurrentB; AET E[Number],*HeadE,*CurrentE,*T1,*T2; CExp2View.cpp文件。包含构造方法、OnDraw方法和其他成员方法的描述 #define ROUND(a) int(a+0.5) CExp2View::CExp2View() { // TODO: add construction code here Point[0] = CPoint(500,400); Point[1] = CPoint(350,600); Point[2] = CPoint(250,350); Point[3] = CPoint(350,50); Point[4] = CPoint(500,250); Point[5] = CPoint(600,50); Point[6] = CPoint(800,450); } void CExp2View::OnDraw(CDC* pDC) { CExp2Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here pDC-TextOut(505,410,P0); pDC-TextOut(340,600,P1); pDC-TextOut(230,350,P2); pDC-TextOut(360,50,P3); pDC-TextOut(490,225,P4); pDC-TextOut(610,50,P5); pDC-TextOut(800,450,P6); } void CExp2View::OnMenuAET() { // TODO: Add your command handler code here AfxGetMainWnd()-SetWindowText(?à±?D?ì?3?£oóDD§±???·¨); CColorDialog ccd(GetColor); if(ccd.DoModal() == IDOK) GetColor = ccd.GetColor(); RedrawWindow(); CreatBucket(); Et(); PolygonFill(); } void CExp2View::CreatBucket() { int ScanMin,ScanMax; ScanMax = ScanMin = Point[0].y; for(int i=1;iNumber;i++) { if(Point[i].yScanMin) ScanMin = Point[i].y; if(Point[i].yScanMax) ScanMax = Point[i].y; } for(i=ScanMin;iScanMax;i++) { if(ScanMin == i) { HeadB = new Bucket; CurrentB = HeadB; CurrentB-ScanLine = ScanMin; CurrentB-p

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档