home *** CD-ROM | disk | FTP | other *** search
/ The Party 1994: Try This At Home / disk_image.bin / source / lenssrc / lens.bas < prev    next >
BASIC Source File  |  1993-12-01  |  1KB  |  39 lines

  1. DEFINT A-Z
  2.  
  3. PRINT "Diameter of lens (D>0)"; : INPUT D
  4. R = INT(D / 2)
  5. PRINT "Magnification factor (0>M≤"; LTRIM$(STR$(R)); ")"; : INPUT M
  6. S = SQR(R ^ 2 - M ^ 2)
  7.  
  8. DIM TFM(D * D)
  9.  
  10. FOR Y = -R TO -R + D - 1
  11.     FOR X = -R TO -R + D - 1
  12.         IF X ^ 2 + Y ^ 2 >= S ^ 2 THEN
  13.             A = X
  14.             B = Y
  15.         ELSE
  16.             Z = SQR(R ^ 2 - X ^ 2 - Y ^ 2)
  17.             A = INT(X * M / Z + .5)
  18.             B = INT(Y * M / Z + .5)
  19.         END IF
  20.         TFM(1 + (Y + R) * D + (X + R)) = (B + R) * D + (A + R)
  21.     NEXT X
  22. NEXT Y
  23.  
  24. PRINT "Filename to output computations"; : INPUT Filename$
  25. OPEN Filename$ FOR OUTPUT AS #1
  26. PRINT #1, ";Generated with a magnification factor of"; M
  27. PRINT #1, "LensDiameter = "; LTRIM$(RTRIM$(STR$(D)))
  28. PRINT #1, "Lens";
  29. FOR Y = 1 TO D
  30.     PRINT #1, CHR$(9); "DW"; CHR$(9);
  31.     FOR X = 1 TO D
  32.         IF X > 1 THEN PRINT #1, ", ";
  33.         PRINT #1, LTRIM$(RTRIM$(STR$(TFM((Y - 1) * D + X))));
  34.     NEXT X
  35.     PRINT #1,
  36. NEXT Y
  37. CLOSE #1
  38.  
  39.