原理:
寻找水平线(亦即扫描线)和多边形边界的交点个数,如果交点个数唯一,那么不画该点。
矩形填充
问题一
怎么样描述在矩形内部、外部和在边界上的像素点
解决方案
把轮廓线内的部分分解成水平宽带的集合(扫描线)
通过主对角线上两点定义矩形
问题二
怎样处理公共边的问题
解决方案
考虑边相对轮廓线的相对位置
规则
一个像素点属于一条组成轮廓线的边,当且仅当此轮廓线属于上部或者在边右边的半平面:
左端组成水平带但是右端不是
矩形内部水平带属于填充区域内部,外部的水平带则不是
这个原理适用于多边形填充
多边形填充
整体思想
所有纵坐标定义一条光栅线(亦即扫描线)
对所有扫描线,计算它和多边形的边的交点,确定内部分段
奇偶法
P初值为偶数
每当遇到交点时转换一次值(2,1的转换)
P为奇数时,候选点在多边形内部
特殊情况:水平边或者是顶点
对每个扫描线
计算线和边的交点
按照横坐标递增的顺序对交点进行排序
使用奇偶法确定内部区间和外部区间
对于多边形相邻的情况(有公共边)
规则与矩形相同
描绘区间左端点封闭,右端点开放
如果多边形内部在水平边之上的话,那么水平边就是在这个多边形内部
顶点的奇偶规则
>