home *** CD-ROM | disk | FTP | other *** search
/ Dream 41 / Amiga_Dream_41.iso / Amiga / Pro / 3d / DKBTrace.lha / DKBTrace / dkbutdoc.lzh / lissajou.doc < prev    next >
Text File  |  1991-06-08  |  2KB  |  66 lines

  1. LISSAJOU.BAS & LISSAJOU.EXE
  2. Copyright Dan Farmer  January 1991
  3. All rights reserved.
  4.  
  5. The concept for this program came from the Mathematical Recreations column
  6. in Scientific American, January 1991, authored by A.K.Dewdney.  The column
  7. refers to some remarkable ray-traced "creatures" done by Clifford Pickover
  8. at the Thomas J. Watson IBM Research Center.
  9.  
  10. After playing around a little with the algorithm mentioned in the article for
  11. producing the spherical Lissajous figures used by Pickover, I decided to
  12. write a program to help me make DKB ray-trace script files of the shapes, hence
  13. this program.
  14.  
  15. Since I am not very well versed on mathematics, I refer you to the article in
  16. Scientic American for more about the concepts behind this program.  All I know
  17. is that you can produce an endless variety of beautiful and complex shapes.
  18. Even if you don't decide to render the images, the preview feature is neat
  19. just by itself.  Another great anti-productivity tool!
  20.  
  21. For those who are interested in the internals, Pickover's basic algorithm is:
  22.     X = R1*SIN(A*T)*COS(B*T)
  23.     Y = R1*SIN(A*T)*SIN(B*T)
  24.     Z = R1*COS(A*T)
  25.     Where T (time) is an iterative loop, and R,A,and B are parameters.
  26.     I have added an exponential option for X,Y, and Z.
  27.  
  28. I have also included a couple of "mutations" of the basic algorithm that
  29. will produce other strange and wonderful forms.  They look like this:
  30.  
  31.     X = R1*SIN(A*T)*COS(B*T)
  32.     Y = R1*COS(A*T)*COS(B*T)
  33.     Z = R1*SIN(A*T)
  34.  
  35.  
  36.     X = R1*SIN(A*T)*SIN(B*T)
  37.     Y = R1*SIN(A*T)*COS(B*T)
  38.     Z = R1*SIN(A*T)
  39.  
  40. For those with a QuickBASIC compiler, other perversions are easy to add.
  41. Put the variation into a sub-routine named ALGO.FOUR (etc.) and edit
  42. the line   ON ALGO GOSUB ALGO.ONE, ALGO.TWO,ALGO.THREE to include your
  43. new module.  Also modify the variable MAXALGO that is used for bounds
  44. checking.
  45.  
  46. The DKB script is written using SPHERES of a quantity and size that you
  47. specify.  The color and texture are DECLARED as Atexture and
  48. Acolor to make it easy to modify the whole composite in a single blow.
  49.  
  50. Hope you have fun with it... but be warned:  It takes a lot of computing
  51. power to render 500 or so spheres.  You will probably find that less than
  52. that amount doesn't make a smooth enough object.
  53.  
  54. Dan Farmer
  55. 1001 E. 80th St.  Apt #102
  56. Bloomington MN 55425
  57. (612) 854-6209
  58.  
  59. Leave mail on the You Can Call Me Ray BBS (708) 358-5611.
  60.  
  61. (DKB a ray-tracing program written by David K. Buck with Aaron Collins.)
  62.  
  63.  
  64.  
  65.  
  66.