扫描线种子填充法
"扫描线种子填充法"的基本思想,有些问题不明白.请各位高手帮忙!谢啦!
如下图所示扫描线种子填充法中取新种子点入栈的过程:
1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 . L b . . . . . . . . . . u b1 b2. . . . . . . . . . . v b . . .
3 . b L . . . . . . . . . . s . . . . . . . . . . . . . R b . . . . .
4 . . . . b . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
其中: s(x,y)表示当前种子点,u(x1,y-1)和v(x2,y-1)是新种子点,b表示边界点,L和R分别表示当前区段的最左和最右端点.
我理解的是:首先以第3行的s为种子先向左填充直到左边界L,再向右填充直到右边界R;然后再从从左边开始检查(y-1)这一行,直到遇到边界或者已经填充过的点,记录,作为种子,如上所示u,在这里是遇到边界.
不明白的是:在上面第二行(也就是(y-1)这一行),当遇到边界,记录了种子u,是继续向右扫描吗?若是,那在紧邻u右边的b1和b2之间有两个空格,那是不是没有填充过?且这两个空格也不是边界,为什么在遇到b2时没有再记录种子?怎么知道要再从b2开始向右扫描到最右边的b时才记录种子v?
是否可以帮心讲解一下?
如下图所示扫描线种子填充法中取新种子点入栈的过程:
1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 . L b . . . . . . . . . . u b1 b2. . . . . . . . . . . v b . . .
3 . b L . . . . . . . . . . s . . . . . . . . . . . . . R b . . . . .
4 . . . . b . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
其中: s(x,y)表示当前种子点,u(x1,y-1)和v(x2,y-1)是新种子点,b表示边界点,L和R分别表示当前区段的最左和最右端点.
我理解的是:首先以第3行的s为种子先向左填充直到左边界L,再向右填充直到右边界R;然后再从从左边开始检查(y-1)这一行,直到遇到边界或者已经填充过的点,记录,作为种子,如上所示u,在这里是遇到边界.
不明白的是:在上面第二行(也就是(y-1)这一行),当遇到边界,记录了种子u,是继续向右扫描吗?若是,那在紧邻u右边的b1和b2之间有两个空格,那是不是没有填充过?且这两个空格也不是边界,为什么在遇到b2时没有再记录种子?怎么知道要再从b2开始向右扫描到最右边的b时才记录种子v?
是否可以帮心讲解一下?
...全文
相关推荐
计算机图形学大实验多边形填充(扫描线法、种子填充法、种子栈填充法)
本项目基于MFC框架实现了多边形填充的三种经典算法:扫描线法、四方向种子填充法和种子栈填充法。代码结构采用文档/视图模式,涵盖画线、画圆及多边形交互绘制功能,支持鼠标输入与颜色选择。核心填充算法通过向
Android不规则封闭区域填充色彩的实例代码
四、总结通过种子填充法和扫描线填充法,我们可以有效地为Android应用程序中的不规则封闭区域填充颜色。
Android颜色填充
Android不规则封闭区域的填充色彩通常涉及到两种经典的算法:种子填充法和扫描线填充法。种子填充法是一种递归算法,它以用户点击的点作为起点,检查其相邻像素的颜色。
cg.rar_二维填充图形_扫描线 种子填充
二维和三维图形的基本变换二维填充:二维填充有三种算法,其中有序边扫描线转换算法是固定填充的,四连通和扫描线种子填充法是可以填充任意形状的图形(曲线,多边形等)的,并且还可以判断种子点为外部点还是内部点
Bresenham算法绘制线段并利用“橡皮筋”功能绘制折线
为了填充这个多边形,有两种常见的方法:种子填充法和扫描线填充法。种子填充法是一种自蔓延填充方式。从多边形内的一个像素开始,检查其相邻像素是否也在多边形内部。


图形处理/算法
