下载此文档

实验三二维图形的区域填充.doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
西北农林科技大学实验报告学院名称: 理学院专业年级: 计算 131 姓名:学号: 课程:计算机图形学报告日期: 1 )加深对填充算法的理解,分析比较种子填充和边缘填充的差异。 2 )掌握二维图形区域种子填充的原理和算法。, 并能在计算机上编译运行,正确地实现任意多边形边界的单色填充。 1 )对任意多边形的几何形状进行分析,选定比较合适的算法模型。选用种子填充算法: 种子填充算法又称为边界填充算法。其基本思想是: 从多边形区域的一个内点开始, 由内向外用给定的颜色画点直到边界为止。如果边界是以一种颜色指定的, 则种子填充算法可逐个像素地处理直到遇到边界颜色为止。步骤: ①在画图板中画出要填充的图形。②在 matlab 中读入该图片。③对读入的图片二值化,使之变为 01 矩阵。④以行为单位进行扫描, 若遇到 0, 就把该位置的列坐标记到数组a 中。⑤以行为单位进行扫描,给每行的 a(i, 1) 列到 max(a(i,:)) 列进行着色。 2 )画出程序流程图; 3)编写程序的源程序; function tianchong(x,y) x=[40 70 40 24] y=[10 30 80 34] n=length(x); p=1; A=[0,0]; x=[x,x(1)]; 确定种子点元素( x,y ) 判断种子点( x,y ) 是否满足非边界、非填充色的条件,若满足条件,以 y 作为当前扫描线沿当前扫描线向左、右两个方向填充,直到边界。确定新的种子点: 检查与当前扫描线 y 上、下相邻的两条扫描线上的像素。若存在非边界、未填充的像素,则返回上一步进行扫描填充。直至区域所有元素均为填充色,程序结束。 y=[y,y(1)]; for i=1:n [a,k]=Bresenhamline(x(i),y(i),x(i+1),y(i+1)); p=p+k; A=[A;a]; end A=A(2:p,:); m=p-1; y0=min(A(:,2)); y1=max(A(:,2)); yy=y0; while yy<y1 k=0; for i=1:m if A(i,2)==yy k=k+1; D(yy,k)=A(i,1); end end d0=min(D(yy,1:k)); d1=max(D(yy,1:k)); for j=d0:d1-1 plot(j,yy,'ko'); end yy=yy+1; pause(); end function [a,k]=Bresenhamline(x0,y0,x1,y1) dy=y1-y0; dx=x1-x0; d1=abs(2*dx); d2=abs(2*dy); x=x0; y=y0; plot(x,y,'b*'); a=[x y]; k=1; if(abs(dx

实验三二维图形的区域填充 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人63229029
  • 文件大小224 KB
  • 时间2017-06-01
最近更新