有效边表填充算法的实现

有效边表填充算法实现

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. “填充”菜单响应函数中

 有效边表填充算法的实现

 

运行效果

打开项目

有效边表填充算法的实现

 

点击菜单项后

 有效边表填充算法的实现

按下调色板的确定键后,从上往下填充选定颜色

 有效边表填充算法的实现






注意:未经允许不可转载,经允许转载要标明出处!