有效边表填充算法的实现
有效边表填充算法实现
1. 在当前项目中创建有效边结点类AET和边表中桶结点类Bucket,注意AET中的k代表的是边斜率的倒数(1/K)
2. 在视图类中增加属性Point[7],是个点数组,用来存储待填充多边形的顶点,同时在视图类的构造函数中为Point[7]赋值
3. 在视图类的ondraw中,绘制待填充多边形
4. 在视图类中增加两个属性HeadB和CurrentB,表示指向第一个桶结点指针、指向当前桶结点指针
5. 在视图类中增加自定义函数CreatBucket(),建立桶结点
6. 在视图类中增加如下图所示属性
7. 在视图类中增加自定义函数Et(),把待填充七边形放入边表中,定义Number=7
8. 在视图类中增加自定义函数AddEdge(AET *NewEdge);和自定义函数EdgeOrder()
9. 在视图类中增加有效边表填充算法,名称为自定义函数PolygonFill()
10. 在“填充”菜单响应函数中
运行效果
打开项目
点击菜单项后
按下调色板的确定键后,从上往下填充选定颜色
注意:未经允许不可转载,经允许转载要标明出处!