第三节 区域填充算法      
             
 
xl=x0+1;//最左象素
//检查上一条扫描线和下一条扫描线,
//若存在非边界且未填充的象素,
//则选取代表各连续区间的种子象素入栈。
y0=y;
for(int i=1;i>=-1;i-=2)
{
x0=xr;
y=y0+i;
while(x0>=xl)
{
flag=0;
while((GetPixel(x0,y)!=boundaryvalue)
&& (GetPixel(x0,y)!=newvalue)
&& (x0>xl))
{
if(flag==0)
{
flag=1;
xid=x0;
}
x0--;
}
//将最右侧可填充象素压入栈中
if(flag==1)
{ s.push(Point(xid,y));
flag=0; }
   
上一页 | 下一页  
  第一节 直线扫描转换算法
第二节 圆的扫描转换算法
第三节 区域填充算法
第四节 多边形的扫描转换算法