matlab分形图 经典的,分形几何中一些经典图形的MATLAB画法

分形几何中一些经典图形的Matlab画法

(1)Koch曲线程序koch.m

function koch(a1,b1,a2,b2,n)

%koch(0,0,9,0,3)

%a1,b1,a2,b2为初始线段两端点坐标,n为迭代次数

a1=0;b1=0;a2=9;b2=0;n=3;

%第i-1次迭代时由各条线段产生的新四条线段的五点横、纵坐标存储在数组A、B中

[A,B]=sub_koch1(a1,b1,a2,b2);

for i=1:n

for j=1:length(A)/5;

w=sub_koch2(A(1+5*(j-1):5*j),B(1+5*(j-1):5*j));

for k=1:4

[AA(5*4*(j-1)+5*(k-1)+1:5*4*(j-1)+5*(k-1)+5),BB(5*4*(j-1)+5*(k-1)+1:5*4*(j-1)+5* (k-1)+5)]=sub_koch1(w(k,1),w(k,2),w(k,3),w(k,4));

end

end

A=AA;

B=BB;

end

plot(A,B)

hold on

axis equal

%由以(ax,ay),(bx,by)为端点的线段生成新的中间三点坐标并把这五点横、纵坐标依次分别存%储在数组A,B中

function [A,B]=sub_koch1(ax,ay,bx,by)

cx=ax+(bx-ax)/3;

cy=ay+(by-ay)/3;

ex=bx-(bx-ax)/3;

ey=by-(by-ay)/3;

L=sqrt((ex-cx).^2+(ey-cy).^2);

alpha=atan((ey-cy)./(ex-cx));

if (ex-cx)<0

alpha=alpha+pi;

end

dx=cx+cos(alpha+pi/3)*L;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值