代码有很多小错误,我帮你修改了下,
这埋燃饥是函数文件
function S1tree(n)
clc
S='F'a=pi/10A=pi/2z=0zA=[0,pi/2]
p1='FF+[+F+F]-[+F]'
p2='F[+F]F[-F[+F]]'
p3='FF-[-F+F+F]+[+F-F-F]'
for k=2:n
c=rand(1)
if c>=0.7 S=strrep(S,'F',p1)
elseif c>=0.35 S=strrep(S,'F',p2)
else S=strrep(S,'F',p3)
end
end
figure
for k=1:length(S)
switch S(k)
case 'F'
plot(real(z+2*exp(i*A)),imag(z+2*exp(i*A)),'g','LineWidth',2)
hold on
z=z+2*exp(i*A)
case '+'
A=A+a
段行 case '-'
弯返 A=A-a
case '['
zA=[zA[z,A]]
case ']'
z=zA(end,1)
A=zA(end,2)
zA(end,:)=[]
otherwise
end
end
在主窗口中输入
S1tree(7)
画出的图如下(由于每次运行S1tree(7)代码产生随机数不一样,得到的图不一样但是类似)
分类: 电脑/网络 >>程序设计 >>其他编程语言问题描述:
要用VB做一个《分形图形的生成》的软件,要怎么做,可以指点一下吗?现在一点头绪都没有!
解贺租盯析:
做型岩过一下,有一些经验,如果有什么不懂,在问题上补充吧~~~
1、写算法:你要生成什禅和么图像,图像计算的方程式
2、绘图:
a、设定X轴、y轴
b、根据图像公式,从左到右在窗体上描点、线!
3、编写图像保存模块
functioncycle6(px,py,r,n)
%px,py和r分别首肢昌饥迹是大圆圆心坐标和半径,n是迭代次数
%例子者扒:
%cycle6(0,0,1,4)axis
equal
t=linspace(-pi,pi)
plot(r*cos(t)+px,r*sin(t)+py)
theta=pi/3*(0:5)
newr=r/3
newpx=px+2*newr*cos(theta)
newpy=py+2*newr*sin(theta)
if
n>1
for
i=1:6
hold
oncycle6(newpx(i),newpy(i),newr,n-1)
end
end
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)