This file is the reverse chronologic README for PlPlot. The good stuff is at the end. ------------------------------------------------------------------------- New version (V0.3, January 1990): Bug fix in IFF and Portrait Preferences support: when drawing 3-d plots, `down' was defined incorrectly, so the plots would be botched. Fixed. Will compile under Manx or Lattice; Lattice recommended. IMPRESS mode (probably) doesn't work when compiled under Manx due to stdio library bugs. Sample use (to test): rexxplplot examples/example08.plot and give it time (it's plenty slow.) The supplied `plplot.lib' and RexxPlPlot was compiled under Manx. ------------------------------------------------------------------------- Things I did: Make RexxPlPlot compile under Lattice and Manx. Added IFF support. Added Preferences support. Added `plthicken()' and `pliff()' (described below) Added call to macro file at beginning for easier use So, now, simply: rexxplplot [macrofile] and everything will work just fine. Two additional functions: plthicken() Called right before you print. Thickens all lines in the plot by a single pixel width. Only works for the IFF and Preferences output devices. Very useful on those 300 dpi devices. pliff(xdpi, ydpi, xsize, ysize, filename) int xdpi, ydpi, xsize, ysize ; char *filename ; Sets up the IFF parameters from C (or ARexx) so the user isn't prompted for them. If any of the integer parameters are zero, no value is assumed and the user is prompted. If the filename is NULL or "", the filename is prompted for. Thus, you might use a call at the very beginning to set the numeric parameters of the plot, and then later several calls to set the output filename, one for each plot. In order for the numeric parameters to work, they must be set *before* the call to plstar() or plbeg(). Here's a sample self-contained REXX script: /* Example09.plot - Demonstration of contour plotting */ /* Modified for RexxPlPlot by Glenn M. Lewis - 9/12/89 */ /* Modified slightly for IFF files by Tom Rokicki */ address 'PlPlot' say 'Please be patient...' NPTS=41 /* Special RexxPlPlot function */ 'plset_tr(0.05,0.0,-1.05,0.0,0.05,-1.05);' do i=1 to 11; clevel.i = (i-6)*0.2; end i mark=1500 space=1500 do i=1 to NPTS xx = (i-1-(NPTS/2))/(NPTS/2) do j=1 to NPTS yy = (j-1-(NPTS/2))/(NPTS/2) - 1.0 z.i.j = xx*xx - yy*yy; w.i.j = 2*xx*yy; end j end i 'pliff(60,60,640,400,"f1.iff")' 'plbeg(10,1,1);' 'plenv(-1.0,1.0,-1.0,1.0,0,0);' 'plcont(z,NPTS,NPTS,1,NPTS,1,NPTS,clevel,11,xform);' 'plstyl(1,mark,space);' 'plcont(w,NPTS,NPTS,1,NPTS,1,NPTS,clevel,11,xform);' 'pllab("X Coordinate", "Y Coordinate","Contour Plots of Saddle Points");' 'pltext();' 'plend();' exit 0 Enjoy! -tom ------------------------------------------------------------------------- This is RexxPlPlot V0.2 - written by Glenn M. Lewis - Caltech - 9/89 To try out the examples, open two CLI's (or Shells) with large stacks. In the first one, type "RexxPlPlot". When it announces that it is ready, go to the second one, and type "rx Example01.plot", or whatever example you wish to see. Once the 'plstar(nx,ny);' routine is called, you will be prompted in the original window for an output device. Make your selection. Please be patient. ARexx is an interpreted language, and is significantly slower than compiled C. If you just can not stand waiting any longer, open a third CLI, and type "rx 'PlPlot' 'plend'" which tells RexxPlPlot to shut down. You will then have to go to the RexxPlPlot screen if you chose #1, "Amiga" output, and hit a carriage return to close the page. Good luck, and have fun. Using ARexx as a front-end for PlPlot is, as I hope you will see, very useful and versatile. Glenn M. Lewis glennl@vlsi.caltech.edu glennl@tamcad.intel.com ------------------------------------------------------------------------- PLPLOT Version 1.1 ------------------ This is an update of the excellent package that Tony Richardson released recently. My modifications are broken down in three areas: changes and corrections in the documentation files, modifications necessary to generate a link library with the Manx compiler, and the addition of a PostScript driver. Since the package is fairly large, instead of redestributing all of it, I have provided a patch file, that used as input to the patch utility (see FF#129), will make the changes automatically in the version that was posted to Usenet. In order to accomplish this you should cd to the directory above src, include, and docs directories. Then issue the command "patch (b)?(a):(b)) #define min(a,b) ((a)<=(b)?(a):(b)) I don't think that all three are necessary in this case, but they are useful nevertheless. Note that since Tony Richardson did not mention a version number for his release, I have taken the liberty of calling it version 1.0, and subsequently calling the present update version 1.1. Any questions or comments regarding this version of plplot may be directed to: Dr. Samuel Paolucci 1351 Roselli Dr. Livermore, CA 94550 ARPA: paolucci@snll-arpagw.llnl.gov ------------------------------------------------------------------------- PLPLOT is a library of C functions useful for scientific plotting on the Amiga personal computer. The library is Lattice C compatible. For those of you with another compiler or who want to modify the code the source is provided in directory src. Contour plotting, three dimensional plotting, axis redefinition, log-log plotting and multiple subpages are a few of PLPLOT's features. The plots can be displayed on your monitor or a graphics file can be created which can be sent to a hard copy device. To see some of the features of this package I suggest you go to examples directory, READ THE README FILE THERE, and then compile and run one of the example programs. The documentation is in the docs directory and is written in LaTeX. I apologize to those who don't have AmigaTeX or easy access to TeX on another machine. This is Version 1.00 of PLPLOT for the Amiga. I had hoped to add a few more features to the package before releasing, but this work seems to have taken a back seat to work on my dissertation at present. The wish list includes: (1) Color support for the Amiga screen driver. I have written drivers for a few hard copy devices that do provide color support and it would be pretty easy to do on the Amiga. I don't have a need for it though and it does require more memory. (2) Device independence. I would like to have PLPLOT produce a device independent file and then have separate drivers that use this file to generate hard copy. Presently new drivers must be integrated into the package. This would take a little time to accomplish and I don't see myself doing it in the near future. This is FREEWARE. It's my way of saying thank you to those people who have written freeware for the Amiga in the past. Feel free to redistribute this package to anyone who wants it. I do ask that only this version (unaltered) be distributed and that the package be distributed in its entirety (including the documentation). Let me know if you have any comments, find any bugs, or are willing to work on translating the package for use with another compiler. I prefer being contacted by mail, either electronic or US. Tony Richardson email amr@dukee.egr.duke.edu US-Mail Tony Richardson Duke University Dept. of Elect. Eng. Durham, N.C. 27706 phone 919-684-3123 (work) 919-286-7101 (home)