扫描线种子填充法
"扫描线种子填充法"的基本思想,有些问题不明白.请各位高手帮忙!谢啦!
如下图所示扫描线种子填充法中取新种子点入栈的过程:
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?
是否可以帮心讲解一下?