算法概述
Scan-line Polygon FillAlgorithm(扫描线多边形填充算法),是一种利用Vertex位置、Y-bucket sort(Y桶排序)和Activated Edge List(活化边表)的多边形填充算法。它透过活化边表对定点的描述,很好的解决了奇异点的问题;同时减少了数据存储量,使得点间的连线得以使用计算的方法得到。
算法过程
1. 使用鼠标逐个输入多边形的定点,并且使用数组vertexes记录点的位置;
2. 构建边表:
• 初始化边表数组的长度为绘图区域的高度;
• 由始至终遍历数组,分别将获取的顶点写入相应的边表位置:
◦ 若该点的相邻点在该点上方,则淘汰;
◦ 若该点的相邻点在该点的下方,则左下方点的边表元素应在右下方点所对应边表元素的右侧;
• 遍历完成,边表创建完成。
3. 逐行构建活化边表并填充: