计算机图形学算法-光栅图形学

2022-02-21  本文已影响0人  火星来的农民

直线段的扫描转换算法(一)

1.1 直线段扫描转换算法概述:

1.2 数值微分法 (DDA)

1.3 中点画线法

1.4 Bresenham 算法

多边形的扫描转换(二)

多边形表示方法:

X-扫描线算法


边缘填充算法

栅栏填充算法

边界标志算法

区域填充

填充,是绘图软件极为重要的一个功能。用户通过点击某空白区域内任一点,即可为该区域着色,系统能自动识别边界线,最后停止填充。本章我们就讲解下填充算法的实现思路。

区域填充基础概念:

重点讲扫描线种子填充算法

现在,假设我们要在下面的绘图空间内,填充边界颜色为X的区域,红色是用户点击的填充起点,阴影是填充后的颜色。那么按照上面所述思路,第一个种子点分别向左、向右找到边界,然后填充该区段后的效果就应该如下图所示。不仅填充了该区段,还把与自己向上紧邻的1像素、向下紧邻的1像素所在区段不超过xr的最右侧内点坐标压入了栈中。


继续,下一步就应该是像素点3出栈,搜索边界[xl,xr],填充区段,向上,向下,其中向上的时候发现整行都被填充过了,所以该行没有新种子点入栈,而向下的时候发现4正好属于内点、在最右侧、不超过xr,因此4入栈。下一步又是4出栈,同3的情况一样,最后进行到下图所示情况。


此时像素点5出栈,也和上面一样,执行完成后像素点6入栈。而6的这次就稍微有些不同了,因为6所在区段[xl,xr]比较长,往往上下就会有多于1个像素点入栈),可以看到这次有7、8、9入栈。



反走样

反走样技术

上一篇 下一篇

猜你喜欢

热点阅读