matlab 实现分形图形-科赫曲线绘制
2015-06-21 16:53
531 查看
科赫曲线如下
https://upload.wikimedia.org/wikipedia/commons/f/fd/Von_Koch_curve.gif
matlab代码如下
x=[-1,0,1];
y=[0,sqrt(3),0];
c=complex(x,y);
c(4)=c(1);
plot(real(c), imag(c));
axis([-1.5 1.5 -1 2]);
axis square;
pause(1);
for i=1:8
n=size(c);
n=n(2);
n=n-1;
c1=complex(zeros(1,4*n),zeros(1,4*n));
for j=1:n
c1(4*j-3)=c(j);
c1(4*j-2)=(2*c(j)+c(j+1))/3;
c1(4*j)=(c(j)+2*c(j+1))/3;
c1(4*j-1)=c1(4*j-2)+(c1(4*j)-c1(4*j-2))*complex(0.5,sqrt(3)/2);
end
c=c1;
c(4*n+1)=c(1);
plot(real(c), imag(c));
axis([-1.5 1.5 -1 2]);
axis square;
pause(1);
end
https://upload.wikimedia.org/wikipedia/commons/f/fd/Von_Koch_curve.gif
matlab代码如下
x=[-1,0,1];
y=[0,sqrt(3),0];
c=complex(x,y);
c(4)=c(1);
plot(real(c), imag(c));
axis([-1.5 1.5 -1 2]);
axis square;
pause(1);
for i=1:8
n=size(c);
n=n(2);
n=n-1;
c1=complex(zeros(1,4*n),zeros(1,4*n));
for j=1:n
c1(4*j-3)=c(j);
c1(4*j-2)=(2*c(j)+c(j+1))/3;
c1(4*j)=(c(j)+2*c(j+1))/3;
c1(4*j-1)=c1(4*j-2)+(c1(4*j)-c1(4*j-2))*complex(0.5,sqrt(3)/2);
end
c=c1;
c(4*n+1)=c(1);
plot(real(c), imag(c));
axis([-1.5 1.5 -1 2]);
axis square;
pause(1);
end
相关文章推荐
- Matlab计算两集合间的海明距离
- Matlab中时间字符串处理总结
- Matlab实现二进制矩阵转换为十进制
- matlab二维数组访问和删除
- MATLAB电路问题的多种解法
- MATLAB中Legend的一些控制方法
- [Matlab] 获取给定两点间直线上点集的方法
- 直方图规定化(匹配)matlab实现(续)
- 机器学习—逻辑回归算法(MATLAB)
- 直方图均衡化matlab实现(续)
- Matlab和C混合编程举例
- 讨论Matlab中double,im2double,mat2gray函数区别
- matlab中varargout与nargout,varargin与nargin的区别
- matlab/simulink中goto/from模块的使用方法
- matlab中周期图功率谱法的实现原理
- 机器学习—感知机算法(MATLAB)
- 接触Matlab10年后的一个总结,随时使用Matlab要掌握的一些要点
- matlab软件中的M文件找不到打开方式
- MATLAB conv2卷积的实现
- LibLinear(SVM包)的MATLAB安装