计算机图形学(四)多边形的种子填充算法讲解与源代码

种子填充算法相比较扫描线填充算要容易的多了。理解起来也很简单。

源码下载:点我下载哦

简单的说一下算法的原理:

种子填充算法都是进行区域填充的,而且一般都是指定给某个区域填充某种颜色。然后给出区域的范围,让种子在区域中任选一点,然后按照“4-联通算法”和“8-联通算法”进行填充,而区域填充算法分为区域填充的递归算法和区域填充的扫描线算法。

种子填充算法:

首先填充种子点所在扫描线上的位于给定区域的一个区段;
然后确定与这一区段相连通的上、下两条扫描线上位于给定区域内的区段,并依次保存下来;
反复这个过程,直到填充结束。
 
(1) 初始化:堆栈置空。将种子点(x,y)入栈。
 
(2) 出栈:若栈空则结束。否则取栈顶元素(x,y),以y作为当前扫描线。
 
(3) 填充并确定种子点所在区段:从种子点(x,y)出发,沿当前扫描线向左、右两个方向填充,直到边界。分别标记区段的左、右端点坐标为xl和xr。
 
(4) 并确定新的种子点:在区间[xl,xr]中检查与当前扫描线y上、下相邻的两条扫描线上的象素。若存在非边界、未填充的象素,则把每一区间的最右象素作为种子点压入堆栈,返回第(2)步。
 
上述算法对

你可能感兴趣的:(计算机图形学,计算机图形学基本算法介绍与入门)