10 ! BILEN3D.BAC 20 ! Snurrar en bil i 3D p} sk{rmen 30 ! Programet kr{ver en ABC806+512Kb 40 ! 3D Vector grafik av Magnus <8042> 1991 50 ! 60 ! Avslut om tangent trycks under "bildvisningsloopen", 70 ! "GRED" f|r att fungera med monokrom sk{rm <7759> 80 ! 90 ! veck3d6 100 EXTEND : FLOAT : ; CHR$(12%) 110 FGCTL BLK+GRED 120 FGPOINT 0%,0%,0% : FGFILL 511%,239% 130 DEF FNZ2(X,Z,V) LOCAL F,Nz 140 F=(2*PI/360) 150 Nz=SIN(F*V)*X+COS(F*V)*Z 160 RETURN Nz 170 FNEND 180 DEF FND2(X,Z,V) LOCAL F,Nx 190 F=(2*PI/360) 200 Nx=COS(F*V)*X-SIN(F*V)*Z 210 RETURN Nx 220 FNEND 230 DEF FNY2(Y,Z,V) LOCAL F,Ny 240 F=(2*PI/360) 250 Ny=COS(F*V)*Y-SIN(F*V)*Z 260 RETURN Ny 270 FNEND 280 FOR B=0 TO 15 290 FGPICTURE B,B,16 300 V=B*(180/16) 310 Yv=345 320 GOSUB 480 330 Q=1 340 RESTORE 440 350 READ X2,Y,Z1 : IF X2=-1 THEN 420 360 X=FND2(X2,Z1,V) 370 Nz=FNZ2(X2,Z1,V) 380 Ny=FNY2(Y,Nz,Yv) 390 IF Q=1 THEN GOSUB 480 400 FGLINE X+200,Ny+100 410 GOTO 350 420 NEXT B 430 GOTO 580 440 DATA -100,0,-40,90,0,-40,90,0,40,-100,0,40,-100,0,-40,-100,25,-40,-100,25,40,-100,0,40,-100,25,40,90,25,40,90,0,40,90,25,40 450 DATA 90,25,-40,90,0,-40,90,25,-40,-100,24,-40 460 DATA -40,25,-40,-20,50,-30,-20,50,30,-40,25,40,-20,50,30,40,50,30,40,50,-30,-20,50,-30 470 DATA 40,50,-30,90,25,-40,90,25,40,40,50,30,90,25,40,-40,25,40,-40,25,-40 480 FGPOINT 0%,0%,0% : FGFILL 511%,239% : FGPOINT X+200%,Ny+100%,1% : Q=0 : RETURN 490 FGPICTURE 1%,0%,2% : FGPOINT 0%,0%,0% : FGFILL 511%,239% : FGPOINT X+200%,Ny+100%,1% 500 Q=0 : B=1 : RETURN 510 GET A$ 520 IF A$="z" THEN V=V+5 : IF V>=360 THEN V=0 530 IF A$="x" THEN V=V-5 : IF V<=0 THEN V=360 540 IF A$="}" THEN Yv=Yv+5 : IF Yv>=360 THEN Yv=0 550 IF A$="{" THEN Yv=Yv-5 : IF Yv<=0 THEN Yv=360 560 RETURN 570 DATA -1,-1,-1 580 FOR B=0 TO 15 590 FGCTL BLK+GRED : FGPICTURE B,B,16 600 FOR Q=0 TO 100 : NEXT Q 610 NEXT B 620 FOR B=14 TO 1 STEP -1 630 FGPICTURE B,B,16 640 FOR Q=0 TO 100 : NEXT Q 650 NEXT B 660 IF SYS(5)=0 580 670 END