实验序号: B72 日期:2011年 8 月 20 日
班级 | 信计0901 | 姓名 | 罗光仲 | 学号 | 200910310115 |
实验 名称 | 相似矩形构造方法 | ||||
问题背景描述: 矩形的构造方法为:给定一个四边形S,对角线三等分,将中间四点连接起来构成一个新的相似小矩形,得到图S1,周围还有八个黑色的小四边形,在对这八个黑色四边形分别按上述方式修改以致无穷,最后得到图形。请用MATLAB实现之。 | |||||
实验原理与数学模型: Sierpinskidt地毯模型 将一个正方形九等分,去掉中间的一个,保留四条边,剩下八个小正方形。将这九个小正方形再分别进行九等分,各自去掉中间的一个保留它们的边。重复操作直至无穷。 function sierpinskidt(x,y,a,b,n) %SIERPINSKIDT谢尔宾斯基地毯 %调用格式:sierpinskidt(x,y,d,n) %x为初始正方形的第一个顶点的横坐标 %y为初始正方形的第一个顶点的纵坐标 %a,b为初始正方形的边长 %n为迭代次数 for j=1:n a1=[];b1=[]; for i=1:length(x) x1=x(i)+[0,a/3,2*a/3,0,2*a/3,0,a/3,2*a/3]; y1=y(i)+[0,0,0,b/3,b/3,2*b/3,2*b/3,2*b/3]; a1=[a1,x1];b1=[b1,y1]; end a=a/3;b=b/3; x=a1;y=b1; end for i=1:length(x) fill(x(i)+[0,a,a,0,0],y(i)+[0,0,b,b,0],'k') hold on end hold off axis off axis equal 此题则是矩形,而非是正方形,思路与SIERPINSKI地毯一样,只需将正方形的边长换成矩形的长和宽即可实现图形的建立。 | |||||
实验所用软件及版本:MATLAB7.01 | |||||
主要内容(要点):实验过程记录(含:基本步骤、主要程序清单及异常情况记录等): 首先定义SIERPINSKIDT,创建M文件: function sierpinskidt(x,y,a,b,n) %SIERPINSKIDT谢尔宾斯基地毯 %调用格式:sierpinskidt(x,y,d,n) %x为初始矩形的第一个顶点的横坐标 %y为初始矩形的第一个顶点的纵坐标 %a为初始矩形的长 %b为初始矩形的宽 %n为迭代次数 for j=1:n a1=[];b1=[]; for i=1:length(x) x1=x(i)+[0,a/3,2*a/3,0,2*a/3,0,a/3,2*a/3]; y1=y(i)+[0,0,0,b/3,b/3,2*b/3,2*b/3,2*b/3]; a1=[a1,x1];b1=[b1,y1]; end a=a/3;b=b/3; x=a1;y=b1; end for i=1:length(x) fill(x(i)+[0,a,a,0,0],y(i)+[0,0,b,b,0],'k') hold on end hold off axis off axis equal set(findobj(gcf,'type','patch'),'edgecolor','none') 然后连续调用该文件(n=1,2,3,4);sierpinskidt(0,0,a,b,n)即可得到图形。 | |||||
实验总结:MATLAB在图形的处理方面有很大的优势,SIERPINSKI地毯 构造结果如下
|