十二:曲线边界区域的扫描线填充
由于曲线边界的区域用非线性方程描述,其扫描线填充比多边形扫描线填充需要更多的时间。我们可以使用10节中的 通用方法 ,但边界交点计算用曲线方程完成。并且其边界的斜率不断地改变,因而不能直接使用直线段边可以使用的增量方法。
填充其他曲线区域可能需要更多的时间。我们可以使用类似的增量方法并与数值方法合来确定扫描线交点,但那样的曲线边界通常用直线段逼近。
由于曲线边界的区域用非线性方程描述,其扫描线填充比多边形扫描线填充需要更多的时间。我们可以使用10节中的 通用方法 ,但边界交点计算用曲线方程完成。并且其边界的斜率不断地改变,因而不能直接使用直线段边可以使用的增量方法。
对于像圆和椭圆这样的简单曲线,可以像凸多边形一样直接应用扫描线填充。每一条与圆或椭圆相交的扫描线仅有两个边界交点。我们可以使用中点方法中的增量计算来确定沿圆或椭圆边界的这两个交点。然后,简单地在一个交点到另一个之间的水平像素段内进行填充。利用四分象限区间(对于圆为八分象限)的对称性可以减少边界计算量。
填充其他曲线区域可能需要更多的时间。我们可以使用类似的增量方法并与数值方法合来确定扫描线交点,但那样的曲线边界通常用直线段逼近。