home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 343b.lha / OrbitX / read.me < prev    next >
Encoding:
Text File  |  1990-01-20  |  23.1 KB  |  655 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.                               How to use "orbitX"
  8.  
  9.                                 * orbitX.doc *
  10.                                 --**********--
  11.        
  12.             OrbitX is a program that lets  you  explore  the behavior of
  13.        orbiting objects. It can  be  used  simply  to watch the delicate
  14.        motion of the objects, or to generate drawings which can be saved
  15.        for use with other  Amiga  programs.  This  document will explain
  16.        some of the theory behind what  is  going on when you run orbitX,
  17.        as well as serve as a general guide to using the program.
  18.        
  19.        
  20.                                * installation *
  21.                                --************--
  22.        
  23.             To use orbitX you will need an Amiga (1000, 500, 2000, 2500)
  24.        with 512k of  ram  or  more,  Workbench  1.2  or  1.3  (with  the
  25.        appropriate Kickstart rom or  disk),  and  version 1.3 of the ARP
  26.        library. If you don't have  the  ARP library (or if you have only
  27.        an earlier version of it) you  should  be  able to find a copy on
  28.        CompuServe's  AmigaTech  forum,  or  a  similar  forum on another
  29.        network, or ask your local  Amiga  users' group or any other such
  30.        distributor of public-domain software.
  31.             Before you do anything else you  will  need  to use "zoo" to
  32.        de-arc the program and all its support files. I recommend putting
  33.        all the files on a  newly-formatted  blank floppy disk. The files
  34.        will all need to be in the same drawer  if you are putting orbitX
  35.        on your hard disk. Consult the  documentation  you have for "zoo"
  36.        for more information on how to remove files from an archive.
  37.             If you want to run orbitX from  a  RAM  or RAD disk you will
  38.        need to copy all its support  files  as well as the executable. I
  39.        have included a script file that will  copy orbitX to a RAM disk,
  40.        but if you have a 'floppy-sized' RAD  disk you will probably find
  41.        it faster and easier to do a  disk  copy.  I definitely recommend
  42.        copying orbitX to RAM or RAD to speed up loading time.
  43.        
  44.        
  45.                                 * distribution *
  46.                                 --************--
  47.        
  48.             You can make as many copies of orbitX  as you want, and give
  49.        them to whomever you choose, by  any  means you have available to
  50.        you, but please keep all the  files  together  (including all the
  51.        documentation), and don't sell  or  otherwise make money from the
  52.        distribution of this program.
  53.             I  am  also  asking  that  you  complete  the  questionnaire
  54.        included with this program (it's call  "write.me"), and send your
  55.        responses back to me on  CompuServe.  My  name and user ID can be
  56.        found at the end of this file. It  should only take a few minutes
  57.        of your time, and I really do need the responses.
  58.             In addition to this I am  also  interested  in  the kinds of
  59.  
  60.                                     Page 1
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.                               How to use "orbitX"
  74.  
  75.        images you have created with  orbitX,  so, if you've come up with
  76.        something you really like, save it as a "status file" and send it
  77.        to me on CompuServe  (status  files  are  quite small, and should
  78.        transfer very quickly).
  79.        
  80.        
  81.                                     * use *
  82.                                     --***--
  83.        
  84.             To start the program simply double-click  on the orbitX icon
  85.        or type "run orbitX" in  your  CLI  or  shell. The screen will go
  86.        black (except for your mouse pointer), and the program will load.
  87.        Don't do anything else until you see  a gray "x" in the middle of
  88.        the screen and an orange ball orbiting it (leaving a gray trail).
  89.             If you press the right mouse button you will see three menus
  90.        (called "system", "balls", and  "all")  whose  selections are all
  91.        pictures, which I will now explain.
  92.        
  93.        
  94.                                * menu diagram *
  95.                                --************--
  96.        
  97.              system              balls               all         
  98.              ------              -----               ---         
  99.              about               largest             on/off      
  100.              "x"                   .                 radius      
  101.                on/off              .                 direction   
  102.                position            .                 center      
  103.              clear screen        smallest            position    
  104.              background color      on/off            trail color 
  105.              add ball              radius            trail on/off
  106.              disk                  direction                     
  107.                save picture        center                        
  108.                load status         position                      
  109.                save status         trail color                   
  110.              quit                  trail on/off                  
  111.        
  112.        
  113.        
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.                                     Page 2
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.                               How to use "orbitX"
  140.  
  141.                                  * the menus *
  142.                                  --*********--
  143.        
  144.        The "system" menu:
  145.             This contains menu items that  affect  the  whole of orbitX.
  146.        The selections are as follow:
  147.        1. about orbitX
  148.             When you select this a window with an explanation of some of
  149.        the basic principles  behind  orbitX  will  appear  on the orbitX
  150.        screen. When you are done reading  click on the "closebox" at the
  151.        upper left corner of the box to resume  normal orbitX operations.
  152.        (If you are running orbitX on a system  with 512k you will not be
  153.        able to 'drag' this window.)
  154.        2. "x"
  155.             This menu item contains a sub-menu  for operations that will
  156.        affect the "x" or center marker  in  orbitX. It has the following
  157.        options available:
  158.             a. on/off
  159.                  This will turn the image  of  the  "x"  on  or off. The
  160.        check mark to the left of  the  "x"  will  reflect  the status of
  161.        the "x" (if the check is on the "x" is on).
  162.             b. position
  163.                  When you select this your mouse  pointer  will  take on
  164.        the image of the "x", and you will  be able to reposition the "x"
  165.        anywhere an the screen. When  you've  moved  the "x" to where you
  166.        would like it to stay,  push  the  left  mouse button and the "x"
  167.        will be at this new position.  Do  not try to use the menus again
  168.        until your  mouse  pointer  is  back  to  normal  (they  won't do
  169.        anything).
  170.        3. clear the screen
  171.             This will erase  any  paths  that  may  currently  be on the
  172.        screen. It will not affect weather  or not paths will continue to
  173.        be drawn.
  174.        4. background color
  175.             When you select this a  requester  will appear on the screen
  176.        with three slider gadgets and the  words "cancel" and "update" on
  177.        it. The top slider controls the amount  of  red in the background
  178.        color, the middle slider  the  amount  of  green, and  the bottom
  179.        slider the amount of  blue. You  can  either click (with the left
  180.        mouse button) on the small rectangle  and move the mouse left and
  181.        right while holding down the  button,  or  you can click the left
  182.        mouse button on the space around  the small rectangle and it will
  183.        move in that direction. The  color  of the background will change
  184.        as you move these sliders.
  185.             Once you have adjusted the  color  to what you want, you can
  186.        click (the left mouse button) on the  word "update" and the color
  187.        will stay as what you have set  it  to.  If you click on the word
  188.        "cancel" the background color will  go back to what it was before
  189.        you changed it.
  190.         5. add a ball
  191.  
  192.                                     Page 3
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.                               How to use "orbitX"
  206.  
  207.             When you select this  another  ball  will  be added into the
  208.        system. It will  be  slightly  smaller  than  the  smallest  ball
  209.        currently in the system, and  will  appear to the right and below
  210.        the previously smallest  ball.  It  will  start out orbiting this
  211.        ball and leaving a trail. If  you  already  have six balls in the
  212.        system,  you  will  not  be  able  to  select  this  (it  will be
  213.        "ghosted", and will not  highlight  when  you move the mouse over
  214.        it). The new ball will have its own menu item and sub-menu on the
  215.        "balls" menu.
  216.        6. disk operations
  217.             This menu item contains a sub-menu  that lets you access the
  218.        disk (any disk on your Amiga)  to  load and save status files, or
  219.        to save the screen as an IFF picture. The selections are:
  220.             a. save a picture
  221.                  Select this and you will be able to save an IFF picture
  222.        of the screen. This picture can  be  loaded into almost any paint
  223.        program available for the Amiga. It will be a hi-res, interlaced,
  224.        16-color picture.  If  you  select  the  name  of  a picture that
  225.        already exists, it will be replaced with this new picture.
  226.             b. load status
  227.                  This will load a status file  from  disk. A status file
  228.        is a file that contains  all  the  information  that controls the
  229.        position,  motion,  and  appearance  of  all  the  balls  and the
  230.        environment of orbitX. It is a fast  and convenient way of saving
  231.        and restoring (regenerating) pictures you may find interesting. I
  232.        have included a few status files as  examples of what can be done
  233.        in orbitX. I named my status  files  with  a ".orb" at the end of
  234.        the name for easy  identification,  but  you can name your status
  235.        files anything you choose (so long  as there isn't something else
  236.        by that name already). Status files are ordinary ASCII files that
  237.        can be read in any text editor (such as Notepad or Emacs) and are
  238.        explained in another part or this document.
  239.             c. save status
  240.                  This selection allows you to save the current status of
  241.        orbitX so that it can be  examined  or  restored at another time.
  242.        Read the "load status" explanation for more about this.
  243.        7. quit the program
  244.             This will end your orbitX session and let you use your Amiga
  245.        for other things.
  246.        
  247.        The "balls" menu:
  248.             This contains an item for  each  ball  in  the system, and a
  249.        sub-menu for each item. The  selections  on all the sub-menus are
  250.        the same, and perform the same  operation  for  a different ball.
  251.        Each time you add a ball to the  system  (with  "add ball" on the
  252.        "system" menu) a new item with its  own sub-menu will be added to
  253.        this menu. The sub-menu selections are:
  254.        1. on/off
  255.             This will turn the image of the ball on or off (depending on
  256.        its current status). The  checkmark  to the left of the ball will
  257.  
  258.                                     Page 4
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.                               How to use "orbitX"
  272.  
  273.        tell you weather or not this  ball's  image  is currently on. Pay
  274.        attention to this checkmark, it may  be the only way to tell if a
  275.        ball is on or off if it has wandered off the screen.
  276.        2. set the radius
  277.             When you select this a requester will appear that will allow
  278.        you to change the  radius  of  this  ball.  The  slider is set to
  279.        reflect the current distance of  the  ball from its center, so if
  280.        you move it to the left the ball will  move closer to its center,
  281.        and to the right it will  move  further  away.  Click on the word
  282.        "update" to use the new value you  have set, or "cancel" to leave
  283.        the radius unchanged. These  changes  do  not happen immediately.
  284.        After you have changed the radius, the ball will gradually spiral
  285.        into its new orbit. If the ball  was  in the process of spiraling
  286.        into a new orbit  when  you  selected  this,  the  initial slider
  287.        setting reflects the current  distance,  and  NOT the radius that
  288.        the ball is trying to spiral into.
  289.        3. change direction
  290.             If the  ball  is  going  clockwise  this  will  make  it  go
  291.        counterclockwise. If it is going counterclockwise  this will make
  292.        it go clockwise.
  293.        4. set center
  294.             This lets you  specify  what  you  want  this  ball to orbit
  295.        around. A requester will appear with  pictures of all the current
  296.        balls, the "x", and the words  "closest"  and  "cancel" on it. If
  297.        you want the ball to orbit the "x" or one of the other balls just
  298.        click on the picture of  what  you  want  the ball to orbit. Note
  299.        that a ball cannot  orbit  itself,  and  the  picture of the ball
  300.        whose center you are  selecting  will  appear  right  next to the
  301.        words "set center" on  the  requester.  If  you click on the word
  302.        "closest" the ball will  switch  around,  orbiting whatever it is
  303.        closest to at any  given  moment,  providing  that  the object is
  304.        bigger than it is (in this instance  the "x" is the biggest thing
  305.        in orbitX). If you select  "closest"  for  the first ball it will
  306.        orbit only the  "x"  (because  it's  bigger  than  all  the other
  307.        balls); if you select this  for  the  second  ball it will switch
  308.        back and forth between orbiting  the  "x"  and orbiting the first
  309.        ball.
  310.        5. position
  311.             This lets you place the  ball  anywhere  on  the  screen. It
  312.        works just like  positioning  the  "x".  If  balls wander off the
  313.        screen you can use this to reposition them back onto the screen.
  314.        6. trail color
  315.             This will let you change the  color  of  the trail that this
  316.        ball is leaving behind it. The  requester  is the same as the one
  317.        that changes the background  color.  Note that you can change the
  318.        trail color even if this ball  is  not currently leaving a trail.
  319.        The words "set color" will be  written  in the same color as that
  320.        of the trail.
  321.        7. trail on/off
  322.             This will turn on and off the trailing of this ball. It will
  323.  
  324.                                     Page 5
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.                               How to use "orbitX"
  338.  
  339.        not remove trails that have been drawn  already. If the checkmark
  340.        is on this ball is currently leaving a trail.
  341.        
  342.        The "all" menu:
  343.             This menu has the same items on  it  as the sub-menus in the
  344.        "balls" menu. The operations performed  by this menu are the same
  345.        as for the sub-menus,  except  that  on  this menu the operations
  346.        will be performed for all the  balls  at the same time. This is a
  347.        convenient way of changing all  the  trails to the same color, or
  348.        giving all the balls the same  radius  for example. Note that the
  349.        "direction", "on/off" and  "trail  on/off" selections will change
  350.        the current status of the  direction,  imagery and trails for all
  351.        the balls based on what they are when  you select it, rather than
  352.        turn them all on and off  if  they  do  not already have the same
  353.        status as one another.
  354.        
  355.        
  356.        
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.                                     Page 6
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.                               How to use "orbitX"
  404.  
  405.                                * status files *
  406.                                --************--
  407.        
  408.             Status files are files  which  contain  all  the information
  409.        about the positions, motion,  and  appearance of all the balls in
  410.        the system. They are the  primary  means  of saving and restoring
  411.        the status of orbitX. I have  made  these  files "human-readable"
  412.        mainly to  satisfy  the  users'  curiosity  about  the  types  of
  413.        information  that  create   various   images.  I  would  strongly
  414.        recommend not editing these  files  unless  you  really know what
  415.        you are  doing.  Comments  and  extra  lines  or  spaces  are not
  416.        permitted in these files. Any  error  in one of these files could
  417.        cause orbitX to crash when  you  try  to  load the file. The file
  418.        contains the following information.
  419.        
  420.        line # 1: file description code (the same for all status files)
  421.        line # 2: file name
  422.        line # 3: the number of balls
  423.        line # 4: horizontal position of "x"
  424.        line # 5: vertical position of "x"
  425.        line # 6: 0 if "x" is off; -1 if "x" is on
  426.        line # 7: -1 if any of the balls are orbiting "x"; 0 otherwise
  427.        line # 8: background color
  428.        line # 9: "the orbitals:"
  429.        line #10: number of this ball ("Orbital # 1")
  430.        line #11: horizontal position of ball
  431.        line #12: vertical position of ball
  432.        line #13: ball's horizontal center
  433.        line #14: ball's vertical center
  434.        line #15: number of the ball that this ball is orbiting
  435.        line #16: -1 if this ball is orbiting proximally; 0 otherwise
  436.        line #17: this ball's 'target' radius
  437.        line #18: -1 if this ball is going counter-clockwise; 0 otherwise
  438.        line #19: ball's quadrant relative to its center (0 - 3)
  439.        line #20: ball's delta value
  440.        line #21: if < 1 ball is spiraling out; > 1 ball is spiraling in
  441.        line #22: ball's current distance from its center
  442.        line #23: -1 if ball's image is on; 0 if it's off
  443.        line #24: -1 if ball is leaving a trail; 0 otherwise
  444.        line #25: trail color
  445.        
  446.        ( Lines #10 - #25 are repeated to reflect the status of each ball
  447.        in the system. )
  448.        
  449.        
  450.        
  451.  
  452.  
  453.  
  454.  
  455.  
  456.                                     Page 7
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.                               How to use "orbitX"
  470.  
  471.                                   * theory *
  472.                                   --******--
  473.        
  474.             There are three basic types  of  orbits  you  can model with
  475.        orbitX:
  476.             1. Epicyclic orbits. Set  one  ball  orbiting  the  "x", and
  477.        another ball orbiting  that ball. When you add balls into orbitX,
  478.        each ball will automatically orbit  the previous ball, displaying
  479.        this sort of epicyclic behavior.
  480.             2. Recursive orbits. Set the first  ball orbiting the second
  481.        ball, and set the second ball  orbiting  the first ball. You will
  482.        need to use very small  radii  for  all  the  balls involved in a
  483.        recursive set. Note that the position  of the "x" does not affect
  484.        the paths of recursively orbiting sets.
  485.             3. Proximal orbits. Set  the   center  of a ball (other than
  486.        the first ball) to "closest", and it will orbit either the "x" or
  487.        the closest ball  to it  that  is  larger  than it is. This would
  488.        cause the  first  ball   to  orbit  only  the "x", and the second
  489.        ball to switch back and  forth  between  orbiting  the"x" and the
  490.        first ball.
  491.             The three types of behavior can  also  be combined to create
  492.        more complex behavior.
  493.        
  494.        
  495.                                * multi-tasking *
  496.                                --*************--
  497.        
  498.             I would strongly advise you not to multi-task other programs
  499.        with orbitX. Not only would it  slow  down  other operations to a
  500.        crawl, but it uses  all  the  hardware  sprites  and  much of the
  501.        graphics memory as well.  I  have  found  that  the presence of a
  502.        low-res (320 pixel wide) screen can cause the last two sprites to
  503.        scramble in appearance. If you  run  into this problem, shut down
  504.        any application that  uses  a  low-res  screen,  and  the sprites
  505.        should return to their normal appearance.
  506.             I  would  also  recommend  not  depth-arranging  the  orbitX
  507.        screen. There are no  depth-arranging  gadgets  on the screen for
  508.        this reason (the "Amiga-M" and "Amiga-N"  are still active if you
  509.        should choose not to heed this advice).
  510.        
  511.        
  512.        
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.                                     Page 8
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.                               How to use "orbitX"
  536.  
  537.                                 * the program *
  538.                                 --***********--
  539.             OrbitX was written entirely in  JForth  version  2.0. Source
  540.        code is available upon request  and  requires this version of the
  541.        language. It makes  extensive  use  of  JForth's  object-oriented
  542.        development  environment   (ODE),  and  also  uses  many  of  the
  543.        language's other unique features. JForth is published by:
  544.                                 Delta Research
  545.                                  P.O. Box 1051
  546.                                 San Rafael, CA
  547.                                      94915
  548.        
  549.             Interestingly enough for  those  of  you  knowledgable about
  550.        mathematics  and  programming,  orbitX  is  written  entirely  in
  551.        fixed-point  mathematics.   No  sines  or  cosines  are  used  in
  552.        determining the trajectories of the balls. This was done by using
  553.        Bresenham's circle-drawing algorithm,  which is easily adapted to
  554.        calculating not only circular paths,  but paths that spiral in or
  555.        out as well. Most of  my  familiarity  with  this algorithm comes
  556.        from:
  557.                   "Procedural Elements for Computer Graphics"
  558.                                 David F. Rogers
  559.                            McGraw-Hill Book Company
  560.                                      1985
  561.        and
  562.                  "Principles of Interactive Computer Graphics"
  563.                     William M. Newman and Robert F. Sproull
  564.                            McGraw-Hill Book Company
  565.                                      1979
  566.        
  567.        
  568.                                  * about me *
  569.                                  --********--
  570.        
  571.             I consider myself first  and  foremost  to  be  an artist. I
  572.        program because it is a good way to  have total control over what
  573.        a computer will do. I use computers  because I find it a good way
  574.        to create work that is interactive,  and can directly involve the
  575.        viewer/user in the work. I've been programming small computers as
  576.        a student since 1982, and I find them an interesting platform for
  577.        distributing art to the general  public.  I use the Amiga because
  578.        it has perhaps the best  graphics  of any small, widely available
  579.        computer on the market today.
  580.        
  581.        
  582.        To write to me on CompuServe:
  583.        
  584.                                  Harriet Lurie
  585.                                 ID#: 73760,3624
  586.        
  587.  
  588.                                     Page 9
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.                                     Page 10
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.