                                         
                               2D-Plotter
                               ----------
    2D-Plotter is a general two-dimensional graph plotter.

____________________________________________________________________________

                               QUICK START
                               ----------- 
    For those in a hurry to start it will be useful to know that extensive
    help is available on screen at any time - just press <H> to bring up
    a general Help window.
____________________________________________________________________________

    Quick Example:

    1. Choose Plot mode A.
    2. Press F4.
    3. Move mouse and click {Select} near X=1.
    4. Press <T>.
    5. Press <M>.
    6. Press <A> and input -3,then 2 at the prompt.
    7. Press <Delete>.
    8. Move mouse and click {Adjust} near X=3.
    9. Press <Space>.
   10. Use the 4 cursor keys to pan around.
   11. Click {Adjust} near X=0.
   12. Press <G>
   13. Press one of the other function keys F1-F12.
   14. Press <Tab> to return to Main Menu.

____________________________________________________________________________

     
                                DETAILS
                                -------

    2D-Plotter has four plotting modes:-

    A) Cartesian functions Y=F(X)
    B) Cartesian functions Y=F(X)
    C) Parametric Functions X=X(T),Y=Y(T)
    D) Polar Functions R=R(L), where L=angle.

    The following facilities are available:-
   
    1) Choosing your own function.
    2) Plotting a second independent function on the same graph.
    3) Choosing your own scaling of the axes.
    4) Real-time panning to any part of the graph.
    5) Real-time zooming in/out in X or Y directions, or globally.
    6) 4 plotting resolutions, from low to very high.
    7) Grid lines On/Off.

    The programme can also

    - Show tangents (and their equations) to curves.
    - Find the roots of equations (or intersection of two curves).
    - Find the maxima/minima of functions.
    - Calculate areas (definite integrals) between given limits.
    - Calculate `Volumes of Revolution' between given limits.
    - Display the coordinates of any point on the graph.

    All of the above are available when plotting Cartesian functions
    Y=F(X).   Only a subset are available/relevant to the other
    plotting modes.


 Getting started
 ---------------

   To run the programme just double-click on the !2D-Plotter icon.

   You will be presented with the Plotting Modes screen.

   Choosing one of the plot modes, by clicking the mouse over one of
   the options A,B,C or D (or pressing <A>,<B>,<C>,<D>) will display
   a graph of a function.
   (This in fact is the first function F1 from one of the four sets of
   functions held in the text file `Functions', within !2D-Plotter.)
  
   Try pressing various function keys F1,...,F12.  
   Different example functions will be displayed.

    To try a different Plotting Mode just press <Tab>. This will take
   you back to the initial Plotting Mode screen.   Choose a different 
   option <A>,<B>,<C> or <D>, or click on 'Help' for the Help screen.

   Press the function keys F1,...,F12 again to display more examples.

   For a brief summary of the facilities provided just press <H> at any
   time - a Help screen will appear.


 Facilities
 ----------

            The various facilities come under four headings: -
 
                       (a) General  
                       (b) Input  
                       (c) Graph Manipulation - Keyboard  
                       (d) Graph Manipulation - Mouse
 
            We will consider each of these in turn:-

____________________________________________________________________________

                           (a) General
                           ------------

 Notation:  Mouse      {S} = Select, {M} = Menu, {A} = Adjust
            Keyboard   <X> = Press key `X' etc.


 1) Plotting Mode:  <Tab>  
   
    Press <Tab> to return to the initial Plotting Mode screen.

    This provides four different plotting modes -

          (A) Cartesian Functions Y=F(X)
          (B) Cartesian Functions Y=F(X)
          (C) Parametric Functions X=X(T),Y=Y(T)
          (D) Polar Functions R=R(L)

       and also a `Help' box - which invokes a Help screen.

    (Note: Modes (A) and (B) provide asymptotes as well.)

    Choose an option by clicking the mouse on option A,B,C,D or
    pressing the keys <A>,<B>,<C>,<D>.
    ( Note:  Pressing <Space> is equivalent to choosing mode A )
    The screen will display an example function from the `Library' of
    functions. (In general this function will be chosen at random.)

    
    You may now input your own function, alter the scaling etc.


 2) Help:  Key <H>  (or click over `Help' in the Plot Modes screen) 

    Press <H> at any time for a summary of the facilities provided.


 3) Library:  Function keys F1,F2,...,F12

    Pressing the function keys F1,...,F12 will display example functions.

    There are 12 different ones for each plot-mode (48 in all).
    This `Library' is held in the Text file "Functions" within the
    !2D-Plotter Directory.
    Using !Edit they can be easily changed and/or edited to suit your
    own requirements. The syntax is  Function, Max X, Min X, Max Y, Min Y
    (on succesive lines) where the numbers Max X, Min X, Max Y, Min Y
    specify the display limits of X and Y.
    

 4) Save Screen:  <S>+<Shift>

    Press <S>+<Shift> to save the screen as a sprite.

    (For subsequent printing it is probably best to press <Insert> first
     to invert the colours and so save the graph with a white background.)

    The screens will be saved to the directory `Graphs' already provided 
    within !2D-Plotter.   The graphs will be saved automatically as 
    "Graph-1","Graph-2","Graph-3",... in sequence during each session.
    After the end of a session they should then be renamed and copied to
    another directory, in case they may be overwritten at the next session.

____________________________________________________________________________

                            (b) Input
                            ---------

 1) Function Input:  <I> 

    Press <I> to input your own function.

    You can use any of the Maths functions provided by BASIC e.g  +,-,*,/,
    >,<,ABS,SQR,^,SIN,COS,TAN,ASN,ACS,ATN,EXP,LN,LOG etc.

    Both Plotting modes (A) and (B) require a function of X (upper case).
  
    Plotting mode (C) requires two different functions X(T) and Y(T) of
    the parameter T (upper case).
   
    Plotting mode (D) requires a function R(L) of the angle L (upper case).


 2) Second Function:  <J>    ( Plotting mode A only )

    Press <J> to input a second function. This function is denoted G(X).
    Both functions F(X),G(X) are displayed at the top-left of the screen.

    The graph of the second function will be drawn in a different colour.
    This facility is provided so that the points of intersection of two
    functions can be easily found.
    
    Repeated use of <J> enables different functions G(X) to be displayed
    with the same `first' function F(X).
    Pressing <I> and then <J> means that both F(X) and G(X) can be changed.

    Press <Delete> to return to single function plotting.


 3) Scaling:  <Alt> 

    Press <Alt> to input your own scaling of the axes:-  

    You will be presented with a dialogue screen into which you can enter 
    your new values of Minimum X, Maximum X, Minimum Y, Maximum Y. 
    These values now become the `user' default scaling, and can always be 
    restored by pressing <D> (for User Default).

    Note: when in Polar Mode only Minimum X and Maximum X will be required.
    The Y scales will be automatically fixed to ensure a true perspective
    (arbitrary scales do not make much sense in Polar mode).

    The `screen' scales of the X,Y axes assumed by the programme are :-
           Min X = -5,  Max X = +5,  Min Y = -4,  Max Y = +4.
    This ensures a true perspective for the 5:4 ratio of a Mode 12 screen
    (although any X,Y ranges in this ratio would be equally good).
    You can always return to this `screen' set by pressing <O> (=Original).


 4) Input own X value (or T or L):  <Return>

    Pressing <Return> will request the user to input an X value.
    The corresponding function value will be calculated and the point
    (X,Y) will then be displayed at the centre cursor on the graph.

    Note: in Polar mode the default input is in degrees. However
    <Shift>+<Return> will request input in radians.


 5) Area under graph:  <A>    (Mode A only)

    Pressing <A> will request input of a lower limit and then an upper
    limit (of definite integration). The area will then be calculated.
    The display will show the area as a colour-filled area.


 6) Volume of Revolution:  <V>   (Mode A only)

    Pressing <V> will request input of a lower limit and then an upper
    limit. The Volume will then be calculated and the corresponding region
    will be displayed as a colour-filled area.

____________________________________________________________________________


                    (c) Graph Manipulation - Keyboard
                    ---------------------------------

 1) Zooming:  >,<,Z,X,@,? keys.

    Global - Use the keys `>' or `<' to zoom IN/OUT (global magnification)
             
    Horiz  - Use the Z and X keys to zoom/stretch in the X-direction only.

    Vert   - Use the @ and ? keys to zoom/stretch in the Y-direction only.

    ( Note: In Polar plotting mode only Global zooming is available.)

    The scales on the axes change to reflect the amount of zooming.

    The maximum zooming factor is x100 either way (so x10000 overall).



 2) Panning:  Cursor keys ( + <Shift>,<Ctrl> ).

    Use the Cursor keys to pan around the graph area. To examine a
    particular area either pan to that area OR press <Alt> to input the
    appropriate values of Min X, Max X, Min Y, Max Y.    

    Use the cursor keys + <Shift> to pan more rapidly, OR

    use the cursor keys + <Ctrl> for small,accurate adjustments.

    The scales on the axes change to reflect the current position.


 3) Resolution:  Keypad 1,2,3,4  OR press <Space> to toggle low/medium.

     The graphs can be plotted in 4 different resolutions - low, medium,
    high and very high. They can be accessed by pressing the Keypad
    numbers 1,2,3,4 respectively. Pressing <Space> will toggle between
    low and medium resolution.

     The four different resolutions are indicated by the four different
    colours of the function expressions ( which are displayed at the 
    top-left of the screen.)

        The colours are :     low = gold,
                           medium = cream,
                             high = blue,
                        very high = pink.

    The programme starts up in Medium resolution. 
    This is a reasonable compromise between accuracy and speed.

     Low resolution is useful for zooming or panning at high speed but the
    resulting graphs should not always be taken too seriously, especially
    at high zoom. Some erratic functions can look quite strange at low
    resolution.

    The higher resolution graphs give more accurate representations of the
    various functions, but take longer to plot.


 4) Default/Original scales:  <D>,<O> keys.

    After zooming, panning etc.(which will have changed the initial scaling)
    you can sometimes get a bit lost, and you may wish to get back to your 
    initial scaling ( as set with the <Alt> key ).

    Press <D> to get back to the latest default scaling, as set by the user.

    Press <O> to revert to the `screen' scaling of 5:4.


 5) Centre Coordinates cursor:  <C> key.
   
    Use <C> to toggle the centre coordinates cursor ON/OFF.
   
    This cursor always appears at the centre of the screen, and displays 
    the coordinates of this point. By panning, zooming etc. any point can
    be moved to the centre and its coordinates read.
    Use of the cursor keys+<Ctrl> is useful here for accurate adjustments.


 6) Scale marks:   <Q> key.

    Pressing <Q> will toggle ON/OFF the display of the scale marks on
    the X,Y axes. These scale marks will be either units, 1/10 units OR
    10 units, and the programme will do this automatically. The current
    units on display should be obvious from the numbers on the axes.
    The default is ON.


 7) Grid:  <G> key.

    Use <G> to toggle the grid ON/OFF. This grid will either be a 
    Cartesian type or Polar type, as appropriate.
    By default the Cartesian grid is OFF and the Polar grid is ON.


 8) Delete:   <Delete> key.

    Pressing the <Delete> key will delete any Second function or
    Tangent display or Area display etc.
    i.e returns the user to the default single function display.


 9) Invert Colours:  <Insert>

    Use <Insert> to toggle `inverse' colours ON/OFF.
    
    This is useful just before saving the graph and its subsequent
    printing, since a white background will save a lot of ink and
    print much faster.


 10) Roots,Points of intersection:    Keyboard <R>  OR  Mouse {Adjust}.

     Plotting Modes A,B only.
    
     If the centre cursor is ON, then pressing {Adjust} or <R> will make
     the cursor `jump' to the nearest root. 
     (If a second function has been drawn in Mode A then the cursor will
     jump to the nearest point of intersection of the two functions). 
     The exact (x,y) coordinates are displayed.
     The technique used is the `Newton-Raphson' method.


 11) Maxima,Minima:     Keyboard <M>  OR  Mouse {Menu}

     Plot Mode A only.

     If the centre cursor is ON, then pressing <M> OR {M} will make
     the cursor `jump' to the nearest Maximum or Minimum.
     (If you are too far away or there is no Max/Min then the computer
     will just emit a beep.)
     The coordinates of the Max/Min will be displayed at the bottom
     of the screen.


 12) Tangent:    Keyboard <T>  OR  Mouse {Select}+{Adjust}

     Plot Mode A only.

     If the centre cursor is ON, then pressing <T> OR {S}+{A} will
     display a tangent line at the current x-coordinate and the centre
     cursor will `jump' to the appropriate point on the graph.


 13) Y value:    Keyboard <Y>    (Modes A,B only)

     Pressing <Y> at any time will automatically calculate the Y-value
     corresponding to the current X-value of the centre cursor, and
     place the centre cursor at this (X,Y) point on the curve.


 14) Parameter range:  Number keys 1,2,3,...,9,0    (Modes C,D only)

     Use the keyboard number keys 1,2,3,...,9,0 to extend the range of 
     the parameter T in Parametric mode, or to extend the range of the
     angle L (in multiples of 2*PI) in Polar mode.

    Examples
    
    Parametric mode:
    a) Press F4, then <6>
    b) Press F5, then <4>,<5>,<6>,...    
    You will have to zoom out to see the full effect.
    
    Polar mode:
    a) Press F7, then <2>,<3>,....
    b) Press F8, then <2>
    c) Press F9, then <3>
    d) Press F11, then <4>
    e) Press F12, then <3>,<4>,...,<9>
    In some cases you may have to zoom out to see the full effect.

____________________________________________________________________________


                     (d) Graph Manipulation - Mouse
                     ------------------------------

   The Mouse can be used for moving around and examining specific points.

  {Select}
    Pressing {Select} on any point P will display the coordinates of that
    point P, and will also move the graph so that P will be at the centre
    of the screen. This is one of the major facilities, since any point
    can become the `centre of attention' and can be examined in detail.

  {Menu}
    Clicking {Menu} will find the nearest Maximum or Minimum (if it exists)
    and display its (X,Y) coordinates.

  {Adjust}  -  Plot modes A,B only.
    If the centre cursor is displayed then pressing {Adjust} (or <R>) will
    find the nearest root to the cursor (if any) for a single function
    OR  the nearest point of intersection (if any) of two functions. 
    (Use {Select} to first fix the approximate position.)

  {Select}+{Adjust} 
    While holding {Select}, clicking {Adjust} will draw a tangent line
    at the corresponding point on the curve - Mode A only.

  Examples:

    Example 1: Click {Select} near a root and then click {Adjust} (or <R>).
    The exact value of the root will be displayed. (If you then press <T>
    then a tangent line will be drawn at this point.)

    Example 2: Click {Menu} (or press <M>) near a MAXIMUM or MINIMUM.
    The exact (X,Y) coordinates of the MAX/MIN will be displayed at the
    bottom of the screen.

    Example 3: If two functions F(X) and G(X) have been drawn (in Mode A)
    click {Select} near a point of intersection of the two functions and
    then click {Adjust}, or <R>. The exact (X,Y) coordinates of the point
    of intersection will be displayed.


____________________________________________________________________________

  This programme is Copyright.
   Author:
   R.A.Swetman.

____________________________________________________________________________