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