一、定义边的数据结构
1、边的ymax
2、边的底端x坐标
3、斜率的倒数1/m
4、指向下条边的指针
二、多边形边表(ET)
1、与x轴平行的边不计入
2、多次相交的点记录方式如下:
边表具体记录方式如图:
三、活动边表(AET)
从多边形的ymin开始,步长为1向上扫描。
活动边表记录了扫描线与多边形的相交情况。若当前的的y到达了活动边表内某一边的ymax,把该边删除。若当前的y处有新的边信息,把新边加入。然后重新排序,填充。
具体活动边表更新过程:
(1)开始y=1:
(2)对保留下来的每个记录,用Xi+1/m代替Xi:
(3)使yi+1,以便进入下一轮循环。当y=2时,ET表为空,所以不需要ET表加入AET表。此时上图中x=4和x=6.5,将他们之间的点填上像素。由于y=2,此时没有达到y=3和y=5,所以不必删除节点。
(4)再让Xi+1/m代替Xi,得到:
(5)使yi=3,此时他的边表不为空,所以将其ET表加入,得到:
注意按照xi的升序排列。将Xi=2,至Xi=7之间填上颜色。
(6)由于此时yi=3,而第一个节点的yi=3,所以去掉此节点。
(7)再用Xi+1/m代替Xi,得到:
(8)yi=4,重复继续
参考:https://blog.csdn.net/wodownload2/article/details/52154207