




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
边相关扫描线多边形填充算法M文件代码:function scanedge(X,Y)s,sY=size(Y);maxY=max(Y);minY=min(Y);%奇异点Y1=Y;if (Y(sY)Y(1)&Y(2)Y(1)|(Y(sY)Y(1) Y1(1)=Y(1)-1;endif (Y(sY-1)Y(sY)&Y(1)Y(sY)|(Y(sY-1)Y(sY) Y1(sY)=Y(sY)-1;endfor i=2:sY-1 if (Y(i-1)Y(i)&Y(i+1)Y(i)|(Y(i-1)Y(i) Y1(i)=Y(i)-1; endend%画出多边形hold on;plot(X(1),X(sY),Y(1),Y(sY),r);plot(X,Y,r);axis equal;grid on;%建ET表Edge=zeros(sY);ET=cell(maxY,1);for i=minY:maxY A=find(Y=i); sA=size(A); k=1; for j=1:sA(2) %扫描到P1点时 if A(j)=1 if X(sY)X(2) if Edge(sY)=0 if Y(sY)=Y(1) if X(sY)=X(1) ETi,k=max(Y1(sY),Y1(1),X(1),0; else ETi,k=max(Y1(sY),Y1(1),X(1),. (X(1)-X(sY)/(Y(1)-Y(sY); end k=k+1; end Edge(sY)=1; end if Edge(1)=0 if Y(2)=Y(1) if X(2)=X(1) ETi,k=max(Y1(2),Y1(1),X(1),0; else ETi,k=max(Y1(2),Y1(1),X(1),. (Y(2)-Y(1)/(X(2)-X(1); end k=k+1; end Edge(1)=1; end else if Edge(1)=0 if Y(2)=Y(1) if X(2)=X(1) ETi,k=max(Y1(2),Y1(1),X(1),0; else ETi,k=max(Y1(2),Y1(1),X(1),. (Y(2)-Y(1)/(X(2)-X(1); end k=k+1; end Edge(1)=1; end if Edge(sY)=0 if Y(sY)=Y(1) if X(sY)=X(1) ETi,k=max(Y1(sY),Y1(1),X(1),0; else ETi,k=max(Y1(sY),Y1(1),X(1),. (Y(1)-Y(sY)/(X(1)-X(sY); end k=k+1; end Edge(sY)=1; end end end %扫描到P1以外的点时 if A(j)=1 X1=X;X1(sY+1)=X(1); if X(A(j)-1)AET1,2(1,2) Change=AET1,1; AET1,1=AET1,2; AET1,2=Change;endfor i=ceil(AET1,1(1,2):floor(AET1,2(1,2) plot(i,1,b.,markersize,60);endm=2;for i=minY+1:maxY if isempty(ETi,1) for j=1:m; Change1,j=AETi-1,j; end k=2; while k=m if Change1,k-1(1,2)=Change1,k(1,2) for j=k-1:m-2 Change1,j=Change1,j+2; end k=k-2; m=m-2; end k=k+2; end for j=1:m AETi,j=Change1,j; AETi,j(1,2)=Change1,j(1,2)+Change1,j(1,3); end else if isempty(ETi,2) if AETi-1,1(1,2)+AETi-1,1(1,3)=ETi,1(1,2) AETi,1=ETi,1; for j=2:m AETi,j=AETi-1,j; AETi,j(1,2)=AETi-1,j(1,2)+AETi-1,j(1,3); end end if AETi-1,m(1,2)+AETi-1,m(1,3)=ETi,1(1,2) AETi,m=ETi,1; for j=1:m-1 AETi,j=AETi-1,j; AETi,j(1,2)=AETi-1,j(1,2)+AETi-1,j(1,3); end end if AETi-1,1(1,2)+AETi-1,1(1,3)ETi,1(1,2) for j=1:m; Change1,j=AETi-1,j; end k=2; while k=m if Change1,k-1(1,2)=Change1,k(1,2) for j=k-1:m-2 Change1,j=Change1,j+2; end k=k-2; m=m-2; end k=k+2; end for j=1:m AETi,j=Change1,j; AETi,j(1,2)=Change1,j(1,2)+Change1,j(1,3); end end else if AETi-1,1(1,2)+AETi-1,1(1,3)ETi,2(1,2) if m=2 m=4; AETi,1=AETi-1,1; AETi,1(1,2)=AETi-1,1(1,2)+AETi-1,1(1,3); AETi,2=ETi,1; AETi,3=ETi,2; AETi,4=AETi-1,2; AETi,4(1,2)=AETi-1,2(1,2)+AETi-1,2(1,3); else for j=2:2:m if AETi-1,j-1(1,2)+AETi-1,j-1(1,3)ETi,2(1,2) m=m+2; for k=1:j-1 AETi,k=AETi-1,k; AETi,k(1,2)=AETi-1,k(1,2)+AETi-1,k(1,3); end AETi,j=ETi,1; AETi,j+1=ETi,2; for k=j+2:m AETi,k=AETi-1,k-2; AETi,k(1,2)=AETi-1,k-2(1,2)+AETi-1,k-2(1,3); end j=m; end end end end end end for j=2:2:m for k=ceil(AETi,j-1(1,2):floor(AETi,j(1,2) plot(k,i,b.,markersize,60); end endend测试代码与输出图像:X=6,8,6,2,2;Y=7,5,1,3,6;scanedge(X,Y)figure 1X=2,6,10,10,4,2;Y=1,1,3,8,5,7;scanedge(X,Y)figure 2X=2,6,10,10,4,2,1;Y=1,1,3,8,5,7,6;scanedge(X,Y)figure 3X=2,6,10,10,8,6,4,2;Y=1,1,3,7,6,7,5,7;scane
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年度漯河职业技术学院单招《物理》考前冲刺试卷【学生专用】附答案详解
- 2025计算机一级考试综合练习附答案详解【培优B卷】
- 中班综合教案《寻找蛋宝宝》反思
- 2025年绿色金融市场发展与金融机构战略研究报告
- 2025年环境评价公众参与机制优化与绿色农业发展策略研究报告
- 全屋定制销售合同单
- 河南省南阳市宛城区等2地2025-2026学年高二上学期开学考试语文试题(含答案)
- 巡护员安全培训简报内容课件
- 融资租赁借款合同与设备抵押担保合同范本
- 道路交通事故责任担保合同担保方式及范围规定
- 两篇古典英文版成语故事塞翁失马
- 第5、6讲 目击证人心理研究-法律心理学
- 产业经济学02产业组织理论
- 燃气轮机介绍课件
- 2023年南京江宁交通建设集团有限公司招聘笔试模拟试题及答案解析
- 立体构成技法--半立体构成课件
- 2022年国家公务员考试申论真题及答案解析(地市级)
- 冠心病围术期的护理25张课件
- YYT 1244-2014 体外诊断试剂用纯化水
- DB32-T 4063-2021建筑工程施工质量鉴定标准-(高清现行)
- 3养殖水环境及控制(1)ppt课件
评论
0/150
提交评论