分岔图程序
谁有正确的分岔图程序,能给我传一个吗?急需,谢谢啦 论坛里有些例程,你可以参照一下 function fern%FERNMATLAB implementation of the Fractal Fern
% Michael Barnsley, Fractals Everywhere, Academic Press, 1993.
% This version runs forever, or until stop is toggled.
% See also FINITEFERN.
%分形厥的生成过程实际上是对平面上的一个点不断做变换。设x为一个含两个分量,x1和x2的向量,
%表示一个点。有四种不同的变换,都遵循下面的形式
%x-->Ax+b,
%而取不同的矩阵A和向量b。这被称为仿射变换。最常用的变换是
%A=,b=;
%这个变换可缩短并旋转向量x,然后在他的第二个分量上加1.6。反复应用这个变换的将点向上,向右
%移动,朝着厥的顶尖生成点。这个过程中,偶尔也会随机的采用另外三种变换中的一个,他们分别
%将点移到右边的子厥,左边的子厥和茎干的位置上。
%shg%讲一个已有的绘图窗口置于最前,若没有则创建一个新的窗口
%clf reset%将大部分图的属性设置为默认
set(gcf,'color','white',...
'numbertitle','off','name','Fractal Fern')
x = [-1; 5];%设定初始点的坐标
h = plot(x(1),x(2),'.');
darkgreen = ;
set(h,'markersize',1,'color',darkgreen,'erasemode','none');%使句柄h对应的点更小,改变它的颜色,并设置当点坐标改变时,屏幕上已绘制的这个点的图像不被抹去。
axis([-3 3 0 10])%设置坐标范围
%axis off%不显示坐标
stop = uicontrol('style','toggle','string','stop', ...
'background','white');%创建停止按钮
drawnow%重画
p= [ .85.92.991.00];%建立一个概率向量
A1 = [ .85.04; -.04.85];b1 = ;
A2 = [ .20 -.26;.23.22];b2 = ;
A3 = [-.15.28;.26.24];b3 = ;
A4 = ;%定义四个仿射变换
cnt = 1;%初始哈一个计数器,用来记录绘制点的数目。
tic%启动计时器
while ~get(stop,'value')%没按停止按钮,一直继续
x = A2*x + b2;
set(h,'xdata',x(1),'ydata',x(2));%重新画点
drawnow
cnt = cnt + 1;
end
t = toc;
s = sprintf('%8.0f points in %6.3f seconds',cnt,t);
text(-1.5,-0.5,s,'fontweight','bold');
set(stop,'style','pushbutton','string','close','callback','close(gcf)')
%生成sierpinski三角形,
%令初始点x=;Ax+b
%迭代矩阵为A=;
%b从下面三个向量中随机等概率地选取:
%b=;b=;b=;
%r=ceil(4*rand);
你看行不? 回复 zhouyang664 的帖子
不错,可以参考一下! 回复 lidaijin 的帖子
是的,有好多程序
页:
[1]