设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1565|回复: 0

matlab绘制peano(皮亚诺)曲线和koch分形曲线

[复制链接]

25

主题

831

金钱

950

积分

初级用户

发表于 2019-8-26 15:58:46 | 显示全部楼层 |阅读模式
matlab绘制peano(皮亚诺)曲线和koch(科赫曲线,雪花曲线)分形曲线

koch曲线
matlab plot函数绘制koch曲线程序,程序还是比较简单的,这里只绘制出了雪花的三分之一
  1. function koch_curve(number)%number代表koch的阶数,范围为大于等于2  
  2. figure  
  3. set(gcf,'position',[0,0,1920,1080]);%设置窗口分辨率,[0,0]和[1920,1080]分别为窗口左上角和右下角坐标可根据自己的屏幕分辨率调整,注释掉这句则使用matlab默认窗口分辨率  
  4. n=2;  
  5. koch1=[0,0;1,0];  
  6.     for i=1:number  
  7.         koch2=zeros(4*n-3,2);  
  8.         k=2;  
  9.         for j=2:n  
  10.             koch2(k,:)=[(koch1(j-1,1)*2+koch1(j,1))/3,(koch1(j-1,2)*2+koch1(j,2))/3];  
  11.             koch2(k+1,:)=[(koch1(j-1,1)+koch1(j,1)+sqrt(3)*(koch1(j-1,2)-koch1(j,2))/3)/2,(koch1(j-1,2)+koch1(j,2)-sqrt(3)*(koch1(j-1,1)-koch1(j,1))/3)/2];  
  12.             koch2(k+2,:)=[(koch1(j,1)*2+koch1(j-1,1))/3,(koch1(j,2)*2+koch1(j-1,2))/3];  
  13.             koch2(k+3,:)=koch1(j,:);  
  14.             k=k+4;  
  15.         end  
  16.         n=4*n-3;  
  17.         x=koch2(:,1);  
  18.         y=koch2(:,2);  
  19.         plot(x,y)  
  20.         axis equal   
  21.         koch1=koch2;  
  22.         pause(1);  
  23.     end   
  24. end  
复制代码


matlab 绘制皮亚诺曲线
  1. function peano_curve(n)  
  2.     peano_old=[0,0;0,1;0.5,1;0.5,0;1,0;1,1];  
  3.     x=peano_old(:,1);  
  4.     y=peano_old(:,2);  
  5.     figure  
  6.     set(gcf,'position',[0,0,1920,1080]);  
  7.     plot(x,y)  
  8.     axis equal  
  9.     for i=1:n-1  
  10.         p1=[peano_old(:,1),2+1/(3^i-1)-peano_old(:,2)];  
  11.         p1=p1(length(p1):-1:1,:);  
  12.         p2=[p1(:,1),4+3/(3^i-1)-p1(:,2)];  
  13.         p2=p2(length(p2):-1:1,:);  
  14.         peano_new=[peano_old;p1;p2];  
  15.         p1=[2+1/(3^i-1)-peano_new(:,1),peano_new(:,2)];  
  16.         p1=p1(length(p1):-1:1,:);  
  17.         p2=[4+3/(3^i-1)-p1(:,1),p1(:,2)];  
  18.         p2=p2(length(p2):-1:1,:);  
  19.         peano_new=[peano_new;p1;p2];  
  20.         peano_old=peano_new/(3+2/(3^i-1));  
  21.         x=peano_old(:,1);  
  22.         y=peano_old(:,2);  
  23.         plot(x,y)  
  24.         axis equal  
  25.         pause(1)  
  26.     end  
  27. end
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表