home *** CD-ROM | disk | FTP | other *** search
/ Falcon 030 Power 2 / F030_POWER2.iso / ST_STE / MAGS / MAGGIE22.ARJ / magg22st.msa / GOODIES / ST_INTRO.ZIP / M21.ST / DATA / WASH1.GFA (.txt) < prev   
GFA-BASIC Atari  |  1996-09-06  |  2KB  |  62 lines

  1. '
  2. '
  3. '
  4. ' Washing machine projection
  5. '
  6. max_ring_table%=60              !Pic only has a radius of 50...
  7. max_ring_size%=256
  8. '
  9. '
  10. RESERVE 600000
  11. ' VOID XBIOS(5,L:-1,L:-1,0)
  12. wash%=MALLOC(100*100*2)
  13. mem%=wash%
  14. ystart#=-50
  15. xstart#=-50
  16. yy%=20
  17. xx%=40
  18. mult#=max_ring_table%/SQR((50*50)+(50*50))
  19. maxl%=0
  20. maxp%=0
  21. '
  22. FOR y#=ystart# TO 49                   !200 pixels high
  23.   FOR x#=xstart# TO 49                 !200 pixels wide
  24.     IF x#<>0
  25.       x1#=x#
  26.     ELSE
  27.       x1#=1E-05
  28.     ENDIF
  29.     '
  30.     p%=((ATN(-y#/x1#)/2/PI))*max_ring_size%
  31.     ' --------- Fix for quadrant --------- '
  32.     IF x#<0
  33.       IF y#<0                            !Quadrant 2 - negative
  34.         p%=(max_ring_size%/2)+p%
  35.       ELSE
  36.         p%=p%+(max_ring_size%/2)          !Quadrant 3
  37.       ENDIF
  38.     ELSE
  39.       IF y#>0                            !Quadrant 4 - negative
  40.         p%=(max_ring_size%)+p%            !(p negative here)
  41.       ENDIF
  42.     ENDIF
  43.     ' ----------------------------------- '
  44.     '
  45.     l%=(SQR(x#*x#+y#*y#)*mult#)
  46.     PSET x#+100,y#+100,l%
  47.     '
  48.     maxl%=MAX(l%,maxl%)
  49.     maxp%=MAX(p%,maxp%)
  50.     POKE mem%,l%                        !Ring no
  51.     POKE mem%+1,p%                      !angle
  52.     ADD mem%,2
  53.   NEXT x#
  54. NEXT y#
  55. '
  56. BSAVE "d:\source2\m21.st\data\wash.dat",wash%,mem%-wash%
  57. PRINT maxl%,maxp%
  58. REPEAT
  59.   k$=INKEY$
  60. UNTIL k$<>""
  61. ' CLS
  62.