Advertisement
Guest User

Amstrad CPC Raytracer

a guest
Mar 24th, 2024
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. 1 BORDER 0:MODE 0
  2. 2 st=TIME/300
  3. 3 INK 0,0:INK 1,6:INK 2,2:INK 3,18:INK 4,24:INK 5,26
  4. 5 dx=0:dy=0:GOSUB 1000
  5. 10 FOR x%=0 TO 639 STEP 4
  6. 20 FOR y%=0 TO 399 STEP 2
  7. 130 dx=(x%-320)/580
  8. 131 dy=(y%-200)/580
  9. 140 GOSUB 1000
  10. 300 PLOT x%,y%,col%
  11. 500 NEXT
  12. 505 GOSUB 3000:LOCATE 1,1:PEN 5:PRINT USING "#####,.##s";et
  13. 510 NEXT
  14. 515 WHILE 1:WEND
  15. 520 STOP
  16. 1000 mt=1E+10
  17. 1020 a=2*(dx*dx+dy*dy+1)
  18. 1100 RESTORE 9000
  19. 1101 READ ns%
  20. 1102 FOR s%=1 TO ns%
  21. 1110 READ cx,cy,cz,sr,sc%
  22. 1211 b=2*(dx*cx+dy*cy+cz)
  23. 1212 c=(cx*cx+cy*cy+cz*cz)-sr
  24. 1220 d=b*b-2*a*c
  25. 1230 IF d<0 THEN GOTO 1500
  26. 1231 d=SQR(d)
  27. 1240 t=(b+d)/a
  28. 1241 IF t>0 AND t<mt THEN col%=sc%:mt=t
  29. 1250 t=(b-d)/a
  30. 1251 IF t>0 AND t<mt THEN col%=sc%:mt=t
  31. 1500 NEXT
  32. 1999 IF mt=1E+10 THEN col%=0
  33. 2000 RETURN
  34. 3000 et=(TIME/300)-st
  35. 3010 RETURN
  36. 9000 DATA 4
  37. 9001 DATA 0,-1,4,1,1
  38. 9002 DATA 2,0,4,1,2
  39. 9003 DATA -2,0,4,1,3
  40. 9004 DATA 0,-5001,0,25000000,4
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement