如何填充示例三角形
按照扫描线从上往下的顺序,依次处理和多边形相交的扫描线,对于当前处理的扫描线找到和它相交的所有边的交点,按照交点横坐标从小到大的顺序,两个两个配对,配对之后填充每对交点之间的像素,所有的扫描线处理完成之后,图形的扫描就结束了。在算法中主要学习三种数据结构
三角形与当前扫描线相交的边称为有效边。在处理一条扫描线时仅对有效边进行求教运算,可以避免与多边形的所有边求交。扫描线由有效的低端 ( y = y m i n ) (y = y_{min}) (y=ymin?) 向高端 y = y m a x y=y_{max} y=ymax? 运动,交点的 y y y 坐标每次相加 1.
这个图事实上就是 DDA 算法中的 y y y 为主轴位移的方向,执行 y = y + 1 y = y +1 y=y+1, x = x + 1 k x = x + \frac{1}{k} x=x+k1?
桶表是一个纵向扫描线链表,链表的长度为多边形所覆盖的最大扫描线数,链表的每个节点称为桶,链接边表。