1000 A=200:GOTO20:REM RONDVLUCHT V1.0
1010 GOSUB6310:REM UITLEG
1020 M=-1:RESTORE
1030 FORQQ=1 TO99:Q=1
1040 READX0,Y0,Z0,X1,Y1,Z1:M=M+1
1050 IFABS(X1-X0)+ABS(Y1-Y0)+ABS(Z1-Z0)=0 THENQQ=99
1060 NEXTQQ
1070 DIMX(M,1),Y(M,1),Z(M,1)
1080 DIMH(M,1),V(M,1),A(M)
1090 DIMC$(10),C(6),D(6)
1100 REM LEES TABEL IN
1110 RESTORE
1120 FORI=1 TOM
1130 READX(I,0),Y(I,0),Z(I,0),X(I,1),Y(I,1),Z(I,1)
1140 H(I,0)=0:V(I,0)=0:H(I,1)=0:V(I,1)=0
1150 A(I)=1
1160 NEXTI
1170 REM INIT
1180 FORN=0 TO6
1190 C(N)=0:D(N)=0
1200 NEXTN:RD=8*ATN(1)
1210 C(2)=RD/6:D(2)=60:C(3)=-4:D(3)=-4
1220 C(4)=-4:D(4)=-4:C(6)=20
1230 H(0,1)=0:V(0,1)=0:CH=0:CV=0
1240 REM
1250 C$(1)="UITLEG":C$(6)="ZOOM  "
1260 C$(2)="ROTEER":C$(7)="NIEUW "
1270 C$(3)="X     ":C$(8)="PRINT "
1280 C$(4)="Y     ":C$(9)="WISSEN"
1290 C$(5)="Z     ":C$(10)="EINDE "
1300 C$="":S=2:T=2:IN=0
2000 REM HOOFDPROGRAMMA
2010 I=1
2020 FORQQ=1 TO99:QQ=1
2030 GOSUB200:IFIN<>0 THEN GOSUB5010:GOTO2030
2040 IFA(I)=0 THEN2110
2050 REM WIS LIJN
2060 CN=1
2070 IFU=0 THENHO=H(I,0):VE=V(I,0):GOSUB620
2080 IFU=0 THENHO=H(I,1):VE=V(I,1):GOSUB630
2100 REM BEREKENEN
2110 L1=(X(I,0)=X(I-1,1))
2120 L2=(Y(I,0)=Y(I-1,1))
2130 L3=(Z(I,0)=Z(I-1,1))
2140 IF(L1)AND(L2)AND(L3) THENH1=CH:V1=CV:GOTO2160
2150 A=0:GOSUB3010:H1=HO:V1=VE
2160 A=1:GOSUB3010:H2=HO:V2=VE
2170 CH=H2:CV=V2
2180 GOSUB4010
2190 H(I,0)=H1:H(I,1)=H2:V(I,0)=V1:V(I,1)=V2
2200 REM TEKEN LIJN
2210 IFA(I)=0 THEN2250
2220 CN=0
2230 IFU=0 THENHO=H1:VE=V1:GOSUB620
2240 IFU=0 THENHO=H2:VE=V2:GOSUB630
2250 I=I+1:IFI>M THENQQ=99
2260 NEXTQQ
2300 REM NABEWERKING
2310 J=1:GOSUB7020
2320 GOSUB200:IFIN<>0 THEN GOSUB5010:GOTO2320
2330 IFI=1 THEN2010
2340 IFA(J)=0 THEN2380
2350 CN=0
2360 IFU=0 THENHO=H(J,0):VE=V(J,0):GOSUB620
2370 IFU=0 THENHO=H(J,1):VE=V(J,1):GOSUB630
2380 J=J+1:IFJ<=M THEN2320
2390 GOTO2310
3000 REM BEREKEN COORDINATEN
3010 X=X(I,A):Y=Y(I,A):Z=Z(I,A)
3100 REM ROTEREN
3110 H2=99999:IFX<0 THENH2=-99999
3120 IFZ<>0 THENH2=X/Z
3130 H2=ATN(H2):IFZ<0 THENH2=H2+RD/2
3140 H2=H2+C(2)
3150 R2=SQR(Z*Z+X*X)
3160 Z=R2*COS(H2)
3170 X=R2*SIN(H2)
3200 REM VERPLAATSING EN ZOOM
3210 X=X+C(3):Y=Y+C(4):Z=Z+C(5)*3
3220 H9=2:S9=20
3230 H8=S9+Z
3240 HO=X*S9/H8
3250 VE=(H9*Z+Y*S9)/H8
3260 HO=HO/C(6)+.5
3270 VE=-VE/C(6)+.5
3300 REM EINDE
3310 RETURN
4000 REM SCHERMRAND
4010 IF(H1<0)AND(H2<0) THEN4510
4020 IF(H1>=1)AND(H2>=1) THEN4510
4030 IF(V1<0.05)AND(V2<0.05) THEN4510
4040 IF(V1>=1)AND(V2>=1) THEN4510
4100 REM
4110 HH=V1-V2:VV=H1-H2
4120 IFHH=0 THENVV=999999
4130 IFVV=0 THENHH=999999
4140 IF(HH<>0)AND(VV<>0) THENHH=HH/VV:VV=1/HH
4200 REM
4210 IFH1<1/HG THENH1=1/HG:V1=HH*(H1-H2)+V2
4220 IFH2<1/HG THENH2=1/HG:V2=HH*(H2-H1)+V1
4230 IFV1<0.05 THENV1=0.05:H1=VV*(V1-V2)+H2
4240 IFV2<0.05 THENV2=0.05:H2=VV*(V2-V1)+H1
4300 REM
4310 IFH1>1-2/HG THENH1=1-2/HG:V1=HH*(H1-H2)+V2
4320 IFH2>1-2/HG THENH2=1-2/HG:V2=HH*(H2-H1)+V1
4330 IFV1>1-2/VG THENV1=1-2/VG:H1=VV*(V1-V2)+H2
4340 IFV2>1-2/VG THENV2=1-2/VG:H2=VV*(V2-V1)+H1
4400 REM
4410 IF(H1<0)OR(H1>=1) THEN4510
4420 IF(H2<0)OR(H2>=1) THEN4510
4430 IF(V1<0.05)OR(V1>=1) THEN4510
4440 IF(V2<0.05)OR(V2>=1) THEN4510
4450 RETURN
4500 REM BUITEN HET SCHERM
4510 H1=0:V1=0.05
4520 H2=1/HG:V2=0.05
4530 RETURN
5000 REM STUURCOMMANDO'S
5010 IFU=1 THEN GOSUB6610:U=0:GOTO5210
5020 IFIN=30 THENS=S+1:IFS>10 THENS=1
5030 IFIN=31 THENS=S-1:IFS<1 THENS=10
5040 IF(IN=29)OR(IN=45) THENT=1
5050 IF(IN=28)OR(IN=43) THENT=2
5100 REM
5110 IFIN<>13 THEN5210
5120 IFS=10 THEN950
5130 GOSUB200
5140 ONS GOSUB6310,6010,6110,6110,6110,6210,6610,6810,8010
5200 REM
5210 IFC$<>"" THENHO=0:VE=0:SR$=C$:CN=1:GOSUB650:C$=""
5220 HO=0:VE=0:SR$="":T$="       "
5230 IFS<7 THENSR=D(S):GOSUB300
5240 IFS<7 THENT$=" + (-) ":IFT=2 THENT$="(+) -  "
5250 IFS=1 THENT$="       ":SR$=""
5260 SR$=T$+C$(S)+"  "+SR$:CN=0:GOSUB650
5270 C$=SR$
5280 RETURN
6000 REM ROTEREN
6010 IFT=1 THENC(S)=C(S)-RD/72:IFC(S)<-RD/2 THENC(S)=C(S)+RD
6020 IFT=2 THENC(S)=C(S)+RD/72:IFC(S)>RD/2 THENC(S)=C(S)-RD
6030 D(S)=INT(C(S)*360/RD+.5)
6040 I=1:RETURN
6100 REM X/Y/Z
6110 IFT=1 THENC(S)=C(S)-.5
6120 IFT=2 THENC(S)=C(S)+.5
6130 D(S)=INT(C(S)*10+.5)/10
6140 I=1:RETURN
6200 REM ZOOM
6210 IFT=1 THENC(6)=C(6)*1.1892:D(6)=D(6)-1
6220 IFT=2 THENC(6)=C(6)/1.1892:D(6)=D(6)+1
6230 I=1:RETURN
6300 REM UITLEG
6310 GOSUB7010:HO=.03:VE=.06
6320 SR$="      UITLEG":VE=VE+.042:GOSUB650
6330 SR$="+  -  ROTEER":VE=VE+.042:GOSUB650
6340 SR$="+  -  X":VE=VE+.042:GOSUB650
6350 SR$="+  -  Y":VE=VE+.042:GOSUB650
6360 SR$="+  -  Z":VE=VE+.042:GOSUB650
6370 SR$="+  -  ZOOM":VE=VE+.042:GOSUB650
6380 SR$="      NIEUW":VE=VE+.042:GOSUB650
6390 SR$="      PRINT":VE=VE+.042:GOSUB650
6400 REM
6410 SR$="      WISSEN :  <DELETE> = wissen"
6420 VE=VE+.042:GOSUB650
6430 SR$="                <RETURN> = verder"
6440 VE=VE+.042:GOSUB650
6450 SR$="      EINDE":VE=VE+.042:GOSUB650
6460 SR$="Door cursor besturing kun je"
6470 VE=VE+.084:GOSUB650
6480 SR$="kiezen uit de mogelijkheden."
6490 VE=VE+.042:GOSUB650
6500 SR$="Door <RETURN> wordt je keuze"
6510 VE=VE+.042:GOSUB650
6520 SR$="uitgevoerd. Dit kan ook gedaan"
6530 VE=VE+.042:GOSUB650
6540 SR$="worden tijdens het tekenen!"
6550 VE=VE+.042:GOSUB650
6560 REM
6570 SR$=" TOETS => ":HO=.7:VE=.90
6580 CN=0:GOSUB650:U=1
6590 RETURN
6600 REM NIEUW
6610 GOSUB7010:CN=0
6620 IFI=1 THEN6710
6630 FORN=1 TOI-1
6640 IFA(N)=0 THEN6670
6650 HO=H(N,0):VE=V(N,0):GOSUB620
6660 HO=H(N,1):VE=V(N,1):GOSUB630
6670 NEXTN
6700 REM
6710 IFI>M THENRETURN
6720 FORN=I TOM
6730 H(N,0)=0:V(N,0)=0
6740 H(N,1)=0:V(N,1)=0
6750 NEXTN
6760 RETURN
6800 REM PRINT (ZELF IN TE VULLEN)
6810 RETURN
7000 REM SCHERM
7010 GOSUB600
7020 CN=0:HO=0
7030 VE=.05-1/VG:GOSUB620
7040 HO=1-1/HG:GOSUB630
7050 VE=1-1/VG:GOSUB630
7060 HO=0:GOSUB630
7070 VE=.05-1/VG:GOSUB630
7080 HO=.7:VE=0:SR$="RONDVLUCHT":GOSUB650
7090 RETURN
8000 REM WISSEN
8010 J=1
8020 GOSUB200
8030 IF(IN=30)OR(IN=29) THENJ=J+1:IFJ>I-1 THENJ=1
8040 IF(IN=31)OR(IN=28) THENJ=J-1:IFJ<1 THENJ=I-1
8050 CN=A(J)
8060 HO=H(J,0):VE=V(J,0):GOSUB620
8070 HO=H(J,1):VE=V(J,1):GOSUB630
8080 IFIN<>127 THEN8130
8100 REM
8110 A(J)=1-A(J)
8120 IN=30:GOTO8030
8130 CN=1-A(J)
8140 HO=H(J,0):VE=V(J,0):GOSUB620
8150 HO=H(J,1):VE=V(J,1):GOSUB630
8160 IFIN<>13 THEN8020
8170 RETURN
25000 REM IN DE DATAREGELS KUN
25010 REM JE COORDINATEN OPGEVEN
25020 REM VAN EEN EIGEN VOORWERP
25030 REM OF GEBOUW.
25040 REM
25050 REM   X, Y, Z, X, Y, Z
25060 REM  HUIS (VLOER)
25070 DATA6,0,-2,6,0,4
25080 DATA6,0,4,-6,0,4
25090 DATA-6,0,4,-6,0,-2
25100 DATA-6,0,-2,6,0,-2
25110 REM  MUREN EN DAK
25120 DATA6,0,-2,6,4,-2
25130 DATA6,4,-2,6,7,1
25140 DATA6,7,1,6,4,4
25150 DATA6,4,4,6,0,4
25160 DATA6,4,4,-6,4,4
25170 DATA-6,4,4,-6,0,4
25180 DATA-6,4,4,-6,7,1
25190 DATA-6,7,1,-6,4,-2
25200 DATA-6,4,-2,-6,0,-2
25210 DATA-6,4,-2,6,4,-2
25220 DATA6,7,1,-6,7,1
25230 REM GARAGE 1
25240 DATA6,0,1,6,0,7
25250 DATA6,0,7,9,0,7
25260 DATA9,0,7,9,0,1
25270 DATA9,0,1,6,0,1
25280 DATA6,0,1,6,3,1
25290 DATA6,3,1,6,3,7
25300 DATA6,3,7,6,0,7
25310 DATA6,3,7,9,3,7
25320 DATA9,3,7,9,0,7
25330 DATA9,3,7,9,3,1
25340 DATA9,3,1,9,0,1
25350 DATA9,3,1,6,3,1
25360 REM GARAGE 2
25370 REM DATA -6, 0, 1,-6, 0, 7
25380 REM DATA -6, 0, 7,-9, 0, 7
25390 REM DATA -9, 0, 7,-9, 0, 1
25400 REM DATA -9, 0, 1,-6, 0, 1
25410 REM DATA -6, 0, 1,-6, 3, 1
25420 REM DATA -6, 3, 1,-6, 3, 7
25430 REM DATA -6, 3, 7,-6, 0, 7
25440 REM DATA -6, 3, 7,-9, 3, 7
25450 REM DATA -9, 3, 7,-9, 0, 7
25460 REM DATA -9, 3, 7,-9, 3, 1
25470 REM DATA -9, 3, 1,-9, 0, 1
25480 REM DATA -9, 3, 1,-6, 3, 1
25490 REM DAKKAPEL
25500 DATA3,4.5,-1.5,-3,4.5,-1.5
25510 DATA-3,4.5,-1.5,-3,6,-1.5
25520 DATA-3,6,-1.5,3,6,-1.5
25530 DATA3,6,-1.5,3,4.5,-1.5
25540 DATA3,4.5,-1.5,3,6,0
25550 DATA3,6,0,3,6,-1.5
25560 DATA3,6,0,-3,6,0
25570 DATA-3,6,0,-3,6,-1.5
25580 DATA-3,6,0,-3,4.5,-1.5
25590 DATA0,4.5,-1.5,0,6,-1.5
25600 REM RAMEN EN DEUREN
25610 DATA5,0,-2,5,3,-2
25620 DATA5,3,-2,4,3,-2
25630 DATA4,3,-2,4,0,-2
25640 DATA3,1,-2,3,3,-2
25650 DATA3,3,-2,1,3,-2
25660 DATA1,3,-2,1,1,-2
25670 DATA1,1,-2,3,1,-2
25680 DATA-1,1,-2,-1,3,-2
25690 DATA-1,3,-2,-3,3,-2
25700 DATA-3,3,-2,-3,1,-2
25710 DATA-3,1,-2,-1,1,-2
25720 DATA-4,0,-2,-4,3,-2
25730 DATA-4,3,-2,-5,3,-2
25740 DATA-5,3,-2,-5,0,-2
25750 DATA5,1,4,5,3,4
25760 DATA5,3,4,1,3,4
25770 DATA1,3,4,1,1,4
25780 DATA1,1,4,5,1,4
25790 DATA-1,1,4,-1,3,4
25800 DATA-1,3,4,-5,3,4
25810 DATA-5,3,4,-5,1,4
25820 DATA-5,1,4,-1,1,4
29000 REM EINDE
29010 DATA0,0,0,0,0,0
30000 REM RONDVLUCHT V1.0
30010 REM
30020 REM WEERGAVE VAN EEN
30030 REM VOORWERP OF GEBOUW
30040 REM IN PERSPECTIEF.
30050 REM
32000 REM GESCHREVEN DOOR
32010 REM
32020 REM HENK VAN DEELEN
32030 REM
32040 REM (C) HVD OKT 1989
32050 REM
32060 REM TROS-RADIO dd 900321
