计算机图形学 区域填充算法的实现

计算机图形学  区域填充算法的实现
计算机图形学  区域填充算法的实现

实验四区域填充算法的实现

班级 08信计2班学号 20080502088 姓名许延恒分数

一、实验目的和要求:

1、理解区域的表示和类型。

2、能正确区分四连通和八连通的区域

3、了解区域填充的实验原理。

4、利用C++实现区域填充的递归算法。

二、实验内容:

1假设在多边形内有一像素已知,由此出发利用连通性找到区域内所有像素。

2 取(x,y)为种子点将整个区域填充为新的颜色。

3 进行递归填充。

三、实验结果分析

区域填充属性包括填充样式,填充颜色和填充图案的类型。C语言中定义了某种图形后,即可调用-floodfill函数,对指定区域进行填充

. 程序代码

#include

#include

#include

void floodfill4(int x,int y,int oldcolor,int newcolor)

{

if(getpixel(x,y)==oldcolor)

{

putpixel(x,y,newcolor);

Sleep(1);

floodfill4(x,y+1,oldcolor,newcolor);

floodfill4(x,y-1,oldcolor,newcolor);

floodfill4(x-1,y,oldcolor,newcolor);

floodfill4(x+1,y,oldcolor,newcolor);

}

}

main()

{

int a,b,c,d,i,j;

int graphdriver=DETECT;

int graphmode=0;

initgraph(&graphdriver,&graphmode,"");

cleardevice();

setcolor(RED); rectangle(50,50,70,100); for(i=51;i<70;i++)

for(j=51;j<100;j++) {

putpixel(i,j,4);

}

a=57;

b=70;

c=4;

d=RGB(0,255,0); floodfill4(a,b,c,d); getch();

closegraph();

}

相关主题
相关文档
最新文档