An Interactive Plotting Program

zou at math.arizona.edu zou at math.arizona.edu
Sat Jan 6 11:55:11 AEST 1990


developed a software called Irisplot for the IRIX 4D series machine.
The following is the primary man page of Irisplot. If you are
interested, send message to
	system at math.arizona.edu


/************************** cut here ****************************/

IRISPLOT(1)               USER COMMANDS               IRISPLOT(1)



NAME
     irisplot,irisdraw,irishelp,irisdemo

SYNOPSIS
     irisplot

DESCRIPTION
       IRISPLOT is a command and menu driven interactive plotting
     program which generates high quality graphics on the IRIS-4D
     series machine. It reads instructions from  the  standard in
     and produces plots based on these  instructions. Once a plot
     is done, the plotted graphical objects can be manipulated by 
     mouse input.

       IRISPLOT accepts most of the standard C-Language mathematical
     operators and functions. It also accept user defined constants 
     and functions. If no graphics is required,it can serve as a desk
     calculator.

       IRISPLOT allows you to define your favorite graphical objects
     built from surfaces and curves, which in turn is defined from 
     mathematical functions, discreate maps, differential equations
     and data files. The user has full control of the graphical
     attributes, this includes viewing, orthogonal or perspective 
     projection, object transformation, object slicing, 8 different
     light sources with different color and location, different
     material properties for each object in plot.
	
	IRISPLOT has a large set of online help informations and a
     big set of examples. 

	
COMMAND HISTORY
       IRISPLOT keeps a full record of user commands; any command
     user typed in can be refered by their index.
        For example,
              In[1] : f(x) = x**2 + 5*x + 1
              In[2] : g(x,y) = y*(In[1]) .

     A single command can also be refered by the '%' command.
	For example,
	     In[3] : a = 2
	     In[4] : w(x,y) = x**2 + y**2
	     In[5] : %%
	     In[5] : a = 2
	     In[6] : %2
	     In[6] : g(x,y) = y*( x**2 + 5*x + 1).


DEFINITION SYNTAX
    Function definition:
      Any reasonable math expression is accepted by irisplot.  For
    example,
          f(x,y) = sin(x)*cos(y) * exp(1.0/(x*x+y*y))
          g(x,y) = (y<1)?x:(x-y)*g(x,y-1)
          h(x,y) = sin(x) *(4.0 + cos(y))
          i(x,y) = cos(x) *(4.0 + cos(y))
          j(x,y) = sin(y)*cosh(x) * g(x,y)
          e = exp(1.0) *f(2.3,2.2)
          w = sin(pi/3.0) * sqrt(2.0)
   Note:
      Here we've used the default dummy variables 'x' and 'y',
    if you want to use other dummy variables, you can overwrite 
    the defaults('x','y','z','w') by using the 'set dummy'
    command (see below).

      IRISPLOT knows most of the standard C-Language mathematical 
    operators and functions.

    The built in Math operators are:
     Binary operators:
       Symbol  Example    Explanation
       **       a**b       exponentiation [ instead of pow(a,b) ]
       *        a*b        multiplication
       /        a/b        division
       %        a%b      * modulo
       +          a+b        addition
       -        a-b        subtraction
       ==       a==b       equality
       !=       a!=b       inequality
       &        a&b      * bitwise and
       ^        a^b      * bitwise exclusive or
       |        a|b      * bitwise inclusive or
       &&       a&&b     * logical and
       ||       a||b     * logical or
       ?:       a?b:c    * ternary operation

     Unary operators:
       Symbol  Example    Explanation
        -            -a         unary minus
        ~            ~a       * one's complement
        !            !a       * logical negation
        !            a!       * factorial
     (*) Starred explanations indicate that the operator requires
     an integer argument.

     The built in standard functions are:
         abs     besj0   cos     int     sin
         acos    besj1   cosh    log     sinh
         arg     besy0   exp     log10   sqrt
         asin    besy1   floor   real    tan
         atan    ceil    gamma   sgn     tanh
         rand    srand   imag    arg
	 
	 pow   (power, need two arguments)
   		

    Material Property Definition:
      A material property is defined by specifying the corresponding 
    attributes. For example:
	red_mat = material{
			emission 0.1 0.0 0.0;
			ambient 0.2 0.2 0.2;
			diffuse 0.6 0.0 0.0;
			specular 1.0 1.0 1.0;
			shinness 30.0;
			};
      For a complete understanding of the meaning of these attributes,
    you should read the IRIS Graphical Manual (Vol. 1), Users Guide.	 

    Surface and Curve definitions:
       A surface can be defined by specifing its 3 coordinate func-
     tions, or a mathematical function of 2 variables, or a data
     file.  A curve may be defined by specifing its  3  coordinate
     functions or a data file. Contours can be defined by a function
     or a data file. A trajectory of an iterated map is defined by
     specifying the map, initial conditions and the number of iterations.
     A trajectory of a differential equation is defined by specifying 
     the equations, the initial conditions, the time interval to be 
     integrated, the integration step and  themethod of integration
     (currently, only 2 methods available, RK, 4th order Runge-Kuta
     and RKQC, 4th order Runge-Kuta with step control).  All the 
     definitions have their own attributes. For example,
     
      a = surface{[h(x,y),i(x,y),j(x,y)] [x=-pi:pi] [y=-pi:pi]};
      b = sur{[x,y,x*x-y*y][x=-3:3][y=-3:3][samp=20:20]};
      c = sur{[sqrt(x*x+y*y)] [x=-3:3][y=-2.5:2.5]};
      d = sur{["surface_data"] [samp=34:27]};
      e = cur{[sin(x),cos(x),x] [x=0:20.0*pi] [samp=1000]};
      f = cur{["curve_data"] [sample=1232][color=red]};
      g = contour{[sin(x)*cos(y)][x=-4:4][y=-3:3][samp=30:26]
		  [number_of_contours=20][ contour_values: -1.0 0.0 1.0]};
      h = con{["data"][sam=20:30][cont=5][threed][-2.0:-1.0:0.0:1.0]};
      i = map{[y+1.4*x*x+1,0.3*x] [initi=0.4:0.5][iterate=6000]};
      j = eqn{[10.0*(y-x),28.*x-x*z-y,x*y-8.*z/3.]
              [ini=0.03,0.12,0.1][time=0.0:100][step=0.002]};


     Graphical Object Definition:
       Graphic Objects is defined from surfaces, curves, trajectory of 
     maps and differential equations, material properties and matrix
     transformations. For example,
	sphere = surface{[cos(x)*cos(y),sin(x)*cos(y),sin(y)]
		   	 [x = -pi:pi][y=-0.5*pi:0.5*pi] };
	spheres =object{
			material red_mat;
			graph sphere;
			pushmatrix translate -2.0,0.0 0.0;
			  graph sphere;
			popmatrix;
			material green=material{diffuse 0.0 0.6 0.0};
			pushmatrix translate 2.0,0.0 0.0;
			  graph sphere;
			popmatrix;
		    };


DATA FILE FORMAT
        IRISPLOT currently accepts four kinds of data files:
	  GRID_DATA: 
		Data of a M by N grid, stored in row's order. Used in
		   surface and contour definitions. M and N must be
		   specified in the Surface or Contour definition.
		Data of N points, used in curve definitions. N must be
		   specified in the Curve definition.
	  POLYGON_DATA:
		Data of M polygons (line segments) with number of 
		 vertices spefied. Stored in the following way:
		  n
		  x1 y1 z1
		  x2 y2 z2
		  ...
		  xn yn zn
		  n1
		  xx1 yy1 yy2
		  ...
		  xxn1 yyn1 zzn1
		  ...
	  CVN_DATA:
		Explicitly defined by specify what the data represents. It
		has the following format.
	         c   r g b     [specify a color, will be used by c3f()]
		 n   nx ny nz  [specify a normal, used by n3f()]
		 v   vx vy vz  [specify a vertex, used by v3f()]
		 p             [specify a polygon or a polyline]
		 ...
	 FEA_POLYGON:
		First specify the # of vertices and the # of polygons, then
		give the list of vertices followed by the polygon list.
	 	 nv np    
		 x1 y1 z1
		 ...
		 xnv ynv znv
		 n1 v1 v2 ... vn1
		 ...
		 nnp v1 v2 ... vnp
		 nv1 np1
		 ...

     IRISPLOT will figure out what kind of data file by itself.

   Note:
	Line starts with # is a comment line. IRISPLOT will ignore it.


COMMAND SUMMARY

  Plot:
       The 'plot' command will produce a plot of the specified graphical
     objects. 
	Syntax:
	 	plot <object list>

  Set dummy:
	Set up the user prefered dummy variables.
	 Syntax:
           set dummy <dummy variable list>

  Set window:
	Set up the window size.
	 Syntax:
	   set window <expression>

   Show:
       The show command will display some of the graphical attributes
     and  user  defined functions, graphs and graphical objects. It
     takes at leas one argument. The arguments are:
      functions
                    --- display the user defined functions
      dummy
                    --- display the dummy variables
      graph     
		    --- display the basic graphical units defined
      object 
		    --- display the defined graphical objects
      material
		    --- display the material properties defined
      all
                    --- display everything available

    Print:
       The 'print' command will display the value of a mathematical
     expression. 
	Syntax:
	  print <expression>

   Load:
       The 'load' command will load in a  command  file. The  file
     should contain valid commands for IRISPLOT. It can be either
     a user created file, one created by the  'save'  command  or
     the irisplot record file.
	Syntax:
	   load <'file name'>

   Save:
       The 'save' command will save some of the user definitions
     into a file. Valid save commands are:
      save functions "file_name"
            --- save the user defined functions into "file_name"
      save graphs "file_name"
            --- save the defined graphs into  "file_name"
      save objects "file_name"
            --- save the defined objects into  "file_name"
      save "file_name"
            --- will save everything above to "file_name"

    Help:
       The help command will display the online help.
	 Syntax is
           help <topic>
     (You can get a list of topics by just typing 'help'.)

    Demo:
	Run a demostration program.
	 Syntax:
	   demo

    Exit, Quit:
      This  command will terminate the execution of IRISPLOT.

    Shell:
       The 'shell' command spawns an interactive shell. To return
     to  IRISPLOT, type 'exit'.  A  single  shell  command may be
     spawned by preceding it with a '!' character at the beginning
     of a command line.

    Reset:
       If IRISPLOT refuse to make a plot, type reset and retype the
     last plot command.

FILES
     /usr/local/bin/irisplot  /usr/local/bin/irisdraw 
     /usr/local/bin/irisplot1 /usr/local/bin/irishelp
     /usr/local/bin/irisdemo  /usr/local/lib/irisplot.hlp

AUTHORS
       The front end code is modified from gnuplot 1.1.5 by Thomas
     Williams  and  Collin  Kelley by Maorong Zou.  The  graphical
     driver was written by Maorong Zou.

BUGS
     The program sometimes core dump with no good reasons.



More information about the Comp.sys.sgi mailing list