有效边表填充算法的实现

有效边表填充算法实现

1. 在当前项目中创建有效边结点类AET和边表中桶结点类Bucket,注意AET中的k代表的是边斜率的倒数(1/K

 有效边表填充算法的实现_第1张图片    有效边表填充算法的实现_第2张图片

2. 在视图类中增加属性Point[7],是个点数组,用来存储待填充多边形的顶点,同时在视图类的构造函数中为Point[7]赋值

         有效边表填充算法的实现_第3张图片                                            有效边表填充算法的实现_第4张图片

 

 

3. 在视图类的ondraw中,绘制待填充多边形

 有效边表填充算法的实现_第5张图片

 

4. 在视图类中增加两个属性HeadB和CurrentB,表示指向第一个桶结点指针、指向当前桶结点指针

 

5. 在视图类中增加自定义函数CreatBucket(),建立桶结点

有效边表填充算法的实现_第6张图片

 

6. 在视图类中增加如下图所示属性

 

 

7. 在视图类中增加自定义函数Et(),把待填充七边形放入边表中,定义Number=7

 有效边表填充算法的实现_第7张图片

 有效边表填充算法的实现_第8张图片

8. 在视图类中增加自定义函数AddEdge(AET *NewEdge);和自定义函数EdgeOrder()

 

 

有效边表填充算法的实现_第9张图片


有效边表填充算法的实现_第10张图片

 

 

 

9. 在视图类中增加有效边表填充算法,名称为自定义函数PolygonFill()

 有效边表填充算法的实现_第11张图片

 

 

有效边表填充算法的实现_第12张图片

 

 

 

 

10. “填充”菜单响应函数中

 有效边表填充算法的实现_第13张图片

 

运行效果

打开项目

有效边表填充算法的实现_第14张图片

 

点击菜单项后

 有效边表填充算法的实现_第15张图片

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

 有效边表填充算法的实现_第16张图片






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

你可能感兴趣的:(计算机图形学)