计算机图形学--区域填充算法的实现(共7页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《计算机图形学--区域填充算法的实现(共7页).doc》由会员分享,可在线阅读,更多相关《计算机图形学--区域填充算法的实现(共7页).doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上实验四 区域填充算法的实现班级 08信计二 学号 64 姓名 刘辉 分数一、实验目的和要求:1、 理解区域的表示和类型;2、 能够正确区分四连通、八连通的区域;3、 了解填充函数、区域填充的实现原理;4、 了解掌握区域填充的各种算法(种子填充算法、扫描线算法、边填充算法等),并实现种子填充算法和扫描线算法;5、 用种子填充算法实现四连同区域和八连通区域的填充,并观察他们之间的区别;6、 分析对比种子填充算法和扫描线算法实现的像素逼近效果和程序执行速度;二、实验原理: 用点阵方法表示的多边形区域,如果其内部像素具有同一种颜色,而边界像素具有另一种颜色,可以使用种子填充算
2、法和扫描线算法等填充。种子填充算法是从区域内任一个种子像素位置(x,y)开始,由内向外将填充色扩散到整个多边形区域的填充过程;扫描线填充算法是当给定种子点(x,y)时,首先填充种子点所在扫描线上位于给定区域的一个区段,然后确定与这一段相连通的上、下两条扫描线上位于给定区域内的区段,并依次保存下来的过程。三、实验内容及步骤:3.1、实验内容:1. 利用种子算法实现内点表示的四连通区域的填充。如:设(x,y)为内点表示的四连通区域内的一点,oldcolor为区域的原色,要将整个区域填充为新的颜色newcolor;2. 利用扫描线算法实现以上区域的填充。如:填充以下图案,圆中填充蓝色,三角形中填充红
3、色;3.2、实验步骤:种子填充算法的步骤:1. 种子入栈;2. 当栈非空时,进行下面的操作,否则结束;3. 栈顶元素出栈,如果是未填充的内部点,则将其填充,继续考察与其连通的点,若是为填充的内部点,则该点入栈,返回2步。扫描线填充算法的步骤:1. 初始化,置栈为空,将种子点(x,y)入栈。2. 出栈,若栈空则结束;否则取栈顶元素(x,y),以y作为扫描线。3. 填充并确定种子点所在区段,从种子点(x,y)出发,沿当前扫描线向左、右两个方向填充,直到边界。4. 确定新的种子点,在以上确定的边界中检查与当前扫描线y上、下相邻的两条扫描线上的像素。若存在非边界、未填充的像素,则把每一区间的最右像素作
4、为种子点压入堆栈,返回2步。四、程序代码(1)、内点表示的四连通区域的种子递归填充算法(基于TurboC):#includevoid floodfill4(int x,int y,int oldcolor,int newcolor) if(getpixel(x,y)=oldcolor) putpixel(x,y,newcolor); delay(2000); floodfill4(x,y+1,oldcolor,newcolor); floodfill4(x,y-1,oldcolor,newcolor); floodfill4(x-1,y,oldcolor,newcolor); floodfil
5、l4(x+1,y,oldcolor,newcolor); main() int a,b,c,d,i,j; int graphdriver=DETECT; int graphmode=0; initgraph(&graphdriver,&graphmode, ); cleardevice(); setcolor(14); rectangle(250,250,300,300); for(i=251;i300;i+) for(j=251;j300;j+) putpixel(i,j,4); delay(1000); a=257; b=270; c=4; d=2; floodfill4(a,b,c,d)
6、; getch(); closegraph();(2)、内点表示的八连通区域的种子递归填充算法的调用函数:void floodfill8(int x,int y,int oldcolor,int newcolor) if(getpixel(x,y)=oldcolor) putpixel(x,y,newcolor); delay(2000); floodfill8(x,y+1,oldcolor,newcolor); floodfill8(x,y-1,oldcolor,newcolor); floodfill8(x-1,y,oldcolor,newcolor);floodfill8(x+1,y,o
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 图形学 区域 填充 算法 实现
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内