function[XYAO]=Fractals2_Y(XYAO,M,L,a,s,PP,JJ)
%Snow
%L系统植物
%(一)字符解释
%1----按起点角直行一次;
%20\40----(右\左)转角一次;%3.0X----退回X步;
%2\4----(右\左)转角一次+直行一次;%3----退回一步;
%(二)左右解释
%(1)R=1―-顺时针转角;%(2)R=-1―逆时针转角;
X(1)=XYAO(1,1);Y(1)=XYAO(1,2);A(1)=XYAO(1,3);
for J=1:JJ;
for I=(J-1)*s+1:(J-1)*s+s
K=M(I-(J-1)*s);
if K==20
A(I+1)=A(I)+a;
X(I+1)=X(I);
Y(I+1)=Y(I);
end
if K==40
A(I+1)=A(I)-a;
X(I+1)=X(I);
Y(I+1)=Y(I);
end
if K==1
A(I+1)=A(I);
X(I+1)=X(I)+L*sin(A(I+1));
Y(I+1)=Y(I)+L*cos(A(I+1));
K3=0;
end
if K==2
A(I+1)=A(I)+a;
X(I+1)=X(I)+L*sin(A(I+1));
Y(I+1)=Y(I)+L*cos(A(I+1));
K3=0;
end
if K==4
A(I+1)=A(I)-a;
X(I+1)=X(I)+L*sin(A(I+1));
Y(I+1)=Y(I)+L*cos(A(I+1));
K3=0;
end
if K==3
K3=K3+1;
KK=2;
N=(I-(J-1)*s(2))-1;
for KJ=1:K3
if N>KJ-1 && M(N-KJ+1)==3;KK=KK+2;end;
end
end
if K>3 && K<4
KK=(K-3)*100;
KK=fix(KK+0.001);
A(I+1)=A(I-KK);
X(I+1)=X(I-KK);
Y(I+1)=Y(I-KK);
end
%
II=I-(J-1)*s;
XYA(I+1,1:5)=[X(I+1) Y(I+1) A(I+1) M(II) I];
%%%(三)画图
plot(XYA(:,1),XYA(:,2),'k-','linewidth',5/J/1/1);hold on;
plot(XYA(:,1),XYA(:,2),'b-','linewidth',2.5/J/1/1);hold on;
if I>22;
plot(X(I),Y(I),'r*','linewidth',10);hold on;
plot(X(I),Y(I),'y*','linewidth',1);hold on;
end
end%I
%XYA
if PP==1;XYAO=XYA;end
end%J
%plot(XYA(:,1),XYA(:,2),'b-','linewidth',1);hold on;
%plot(XYA(:,1),XYA(:,2),'y*','linewidth',1);hold on;
%XYAO
评论