
Mplot++ is a math plotter for Unix(R), Microsoft Windows(R) and 
MacOS X(R)  similar to Gnuplot. 
Mplot++ is not as powerfull as Gnuplot, because it
can only display up to 10 functions in bidimensional graphic, and
only one curve or surface at time in tridimensional graphic.
Moreover, it can use at most 12010 nodes in the first case, 4001
to represent a 3D curve and 5001 for a surface (the curves
are approximated by polygonals, every surface is approximated by a
certain number of polygonals which form polygonal faces).
Ok, this values are very low, but there are some good reasons for this.
You must know that Mplot++ allows you to move the plots:
in bidimensional graphic you can only translate the plots, in
tridimensional graphic you can also watch the curves or surfaces
from different points of view by changing the values of some
parameters. These parameters are the longitude and the latitude
corresponding to the direction from which the observer watches the
displayed curve or surface; they can be modified in a flash with
some "clicks" of the mouse and when you modify them you see the
curve or surface to change orientation, according to the real
way this happens. To obtain this i did not use OpenGL but I
performed myself the routines of 3D-graphic (Ok! I am crazy).
Moreover the user can change at once the angle of the visual:
it is like to move a video camera, without modifying
its position respect to the framed object, around the direction
connecting the framed object to it (yes, like in OpenGL!).
The framed object is the same, the position of the video camera
is the same but the angle formed by a diameter of the lens
with a fixed direction (on the plane of the lens) is modified.
Finally, I have decided to perform a "fog effect", so the user
can understand what shares of the displayed curve or surface come
out and what are farthest from the position of the observer.
The portions nearest to the observer are in a dark color and
the points of the curve or surface become more light while
they stand back from the observer. Yes, as though there was
the fog (I have decided to really emulate OpenGL) !
Naturally you can also eliminate the fog if you do not like it.
You can understand that all this work can tire the CPU if the
curve or surface to be displayed is approximated by using many
many faces. So you must set an upper limit for the maximum work
the CPU can do, else the animation is very, very slow.
I have a Pentium I (200 MHz) and i know this very well.
Of course, if you have a better CPU you can modify these upper
limits changing the values for MAX_NNOD_C2D, MAX_NNOD_C3D and
MAX_NNOD_SF inside the header file 'mplot.h' .
You have to do this before to compile and install the program.
The constant MAX_NC controls the greatest number of plots you can
display in a same screen of 2D-graphic (currently 10).
(Inside mplot.h you can find the definitions of other constants,
like MAX_LUN; the value of MAX_LUN-1 is the greatest number of
characters can be found in a single parametric equation.)
I think that you have understood that Mplot++ can do some things
that Gnuplot cannot. It can also export Postscript and Encapsulated
Postscript files, so the user can print the plots when he want to.
It can also export files of ASCII data and can load this data
to recreate a plot. It can create a plot from every right-formatted
file of ASCII data. So, enjoy yourserlf !!!

The instructions for the installation of Mplot++ can be found
into the file INSTALL.

Warning: Mplot++ does not use the perspective to represent a 3D
         figure on the screen of the computer. It works in axonometry,
         i.e. it places always the position of the observer in a point
	 infinitely far from the curve or surface to be represented; 
	 thus, only the direction of the observer decides how the figure
	 will be displayed on the screen. This is true also for the fog
	 effect. So, even if the user can change the representation of
	 the figure by translating the center of the axonometric
	 projection, these translations do not change the effect of the
	 fog over the displayed image. For center of the axonometric
	 projection I mean the point of the space placed in the center
	 of the Canvas inside the Visualization window. You can find more
	 informations about how Mplot++ works by reading the online
	 help of the program.




