简单种子填充算法
简单种子填充算法描述
1. 进种子点压入栈
2. while 堆栈非空 do begin
3.
从堆栈中弹出一个点(x,y)
4.
将该点(x,y)置成所要求的值
5.
if点(x+1,y)不是边界点且点(x+1,y)未设置成所要求的值
then 将点(x+1,y)压入堆栈
6.
if点(x-1,y)不是边界点且点(x-1,y)未设置成所要求的值
区 域:指已经表示成点阵形式的填充 图形,它是象素的集合。区域可采用内 点表示和边界表示两种表示形式。在内 点表示中,区域内的所有象素着同一颜 色。在边界表示中,区域的边界点着同 一颜色。
区域填充:指先将区域的一点赋予指定 的颜色,然后将该颜色扩展到整个区域 的过程。
连通域的概念
区域填充算法要求区域是连通的, 因为只有在连通区域中,才可能将 种子点的颜色扩展到区域内的其它 点。
end
10. end of algorithm
简单种子填充算法
3、简单种子填充算法原理
多边形的描述:
– 多边形的定义:内部点值定义区域, 边界定义区域
– 给出一有序的n个顶点表:P={pi|pi =(xi,yi),1≤i≤n}
– 构造一个有序边表:E={ei|ei=pipi+1,1≤i≤n-1, en=pnp1,pi∈P,1≤i≤n}
(1)求交:计算扫描线与多边形各边的交点;
(2)排序:把所有交点按x值递增顺序排序;
(3)配对:第一个与第二个,第三个与第 10 P3
四个等等;每对交点代表扫描线与
8
e3
e4
P5
e5