1.算法的基本思想(扫描线连贯性原理):
对于一个给定的多边形,用一组水平(垂直)的扫描线进行扫描,对每一条扫描线均可求出与多边形边的交点,这些交点将扫描线分割成落在多边形内部的线段和落在多边形外部的线段;并且二者相间排列。于是,将落在多边形内部的线段上的所有象素点赋以给定的色彩值。
算法中不需要检验每一个象素点,而只考虑与多边形边相交的交点分割后的扫描线段。
2.算法求解:
对于每一条扫描线的处理 :
- 1)求交点:首先求出扫描线与多边形各边的交点;
- 2)交点排序:将这些交点按X坐标递增顺序排序;
- 3)交点匹配:即从左到右确定落在多边形内部的那些线段;
- 4)区间填充:填充落在多边形内部的线段。
3.求交点的方法
- 最简单的办法:将多边形的所有边放在一个表中,在处理每条扫描线时,从表中顺序取出所有的边,分别求这些边与扫描线的交点。
- 不使用该方法的原因:将做一些无益的求交点动作,因为扫描线并不一定与多边形的边相交,扫描线只与部分甚至较少的边相交;因此,在进行扫描线与多边形边求交点时, 应只求那些与扫描线相交的