10 POKE 65497,0:HSCREEN2::HCLS2:HCOLOR 0 20 REM MOVE LINE 5010 TO THE BEGINNING OF THE PROGRAM IF THIS IS ONLY A SUBRUTINE 30 REM AND USE A SMALLER NUMBER TO SAVE MEMORY IF YOU ARE NOT GOING TO HAVE 900 "BRANCHES" 5000 PI=6.28 5010 DIM H(900),V(900),A(900),L(900) 5020 H(1)=16:V(1)=120:REM ROOT OF THE TREE 5030 A(2)=.12:A(3)=.06:REM ANGLES OF BRANCHES 5040 L(2)=60:L(3)=50:REM LENGTH OF BRANCHES 5050 DL=.82:REM DELTA LENGHT OF BRANCH LEVELS 5060 ML=6:REM HIGHEST BRANCH LEVEL 5070 GOSUB 10000 5080 A$=INKEY$:IF A$="" GOTO 5080 ELSE CO=VAL(A$) 5090 IF CO<5 THEN PALETTE 0,CO*10+RND(9) ELSE PALETTE 2,(CO-5)*10+RND(9) 5100 GOTO 5080 9990 REM HERE STARTS THE ACTUAL SUBRUTINE 10000 FOR C=2 TO 3 10010 H(C)=H(1)+L(C)*SIN(PI*A(C)) 10020 V(C)=V(1)-L(C)*COS(PI*A(C)) 10030 IF H(C)>319 OR H(C)<0 THEN 10060 10040 IF V(C)>191 OR V(C)<0 THEN 10060 10050 HLINE(H(1),V(1))-(H(C),V(C)),PSET 10060 NEXT C 10070 P=3 10080 CL=CL+1 10090 FOR C=P+1 TO P*2+1 STEP 2 10100 FOR CC=0 TO 1 10110 B=C+CC 10120 PN=INT(B/2):REM ID OF PARENT BRANCH 10130 L(B)=L(PN)*DL 10140 A(B)=A(PN)+A(2+CC) 10150 H(B)=H(PN)+L(B)*SIN(PI*A(B)) 10160 V(B)=V(PN)-L(B)*COS(PI*A(B)) 10170 HLINE(H(PN),V(PN))-(H(B),V(B)),PSET 10180 NEXT CC 10190 NEXT C 10200 IF CL=ML THEN RETURN 10210 P=P*2+1 10220 GOTO 10080