当前位置:文档之家› 计算机图形学 区域填充算法的实现

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

实验四区域填充算法的实现
班级 08信计2班学号 20080502088 姓名许延恒分数
一、实验目的和要求:
1、理解区域的表示和类型。

2、能正确区分四连通和八连通的区域
3、了解区域填充的实验原理。

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

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

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

3 进行递归填充。

三、实验结果分析
区域填充属性包括填充样式,填充颜色和填充图案的类型。

C语言中定义了某种图形后,即可调用-floodfill函数,对指定区域进行填充
. 程序代码
#include<graphics.h>
#include<conio.h>
#include<time.h>
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();
}。

相关主题