算法的乐趣 · 第四十六节
《算法的乐趣》第四十六节
本节介绍边缘填充算法的两个处理步骤:先将背景初始化为填充色的取补色,再对每条非水平边上的每个像素向右取补。
本节介绍边缘填充算法的两个处理步骤:先将背景初始化为填充色的取补色,再对每条非水平边上的每个像素向右取补。这样需要填充的区域经过奇数次取补得到正确颜色,非填充区域经过偶数次取补仍是背景色。算法用数字矩阵表示位图,通过InitScanLineEdgesTable、FillBackground、EdgeScanMarkColor、ComplementScanLineColor等函数实现。
边缘填充算法对复杂多边形可能多次访问同一像素,效率不高,因此提出栅栏填充算法:过某一顶点作与扫描线垂直的栅栏,扫描线与边相交时只对交点与栅栏之间的像素取补。其实现与边缘填充类似,仅取补范围的控制不同(对应FenceScanMarkColor函数),从而减少像素访问次数,提高效率。
本章总结了计算机图形学常见算法与计算几何基础知识,如点与多边形关系、凸凹性判断、多边形相交判断等,并列出相关参考书目。