From: Jerry <lan...@qw...> - 2006-08-16 09:40:46
|
I am nearly done with a thick binding of PLplot to Ada. I have not overcome a particular difficulty with respect to procedures such as pltr1 which are used by procedures such as plcont (the problem seems related to the struct PLcGrid). I've made some brief notes on this near the end of this e-mail and will be happy to comment further if anyone has any ideas. Some of these notes are Ada-related but many are just things that I noticed as I worked on this binding. Some notes might not be not well- considered so please don't be offended if they seem inappropriate. Also, some problems might have have been created by my code since I have not checked the "complaints" against the C version. Jerry plarrows is in the API but there is no documentation for it in Chapter 17. The "opt" flags for plbin and plhist do not appear in plplot.h nor are they described in the docs. There is no way to get the pen width so there is no way of returning the pen width to its original setting after setting the pen width with plwid. Ditto for line style??? pllightsource: what are the default x, y, z? Not mentioned in docs. Passing a value of 256 to plmesh causes a crash. plline seems to reset the pen width to its minimum; plmesh e.g. does not. In other words, attempts to set the pen width with plwid doesn't "stick." In Postscript images, surface plots seem to have a very fine line delineating the edges of the constituent triangles; zooming in with a PDF viewer (Preview on OS X) does not make them bigger, so they appear to be drawn at the minimum pen width of the PS renderer. I think that they shouldn't be there at all unless so specified. plfont : no bold font? pldid2pc and pldip2dc are not documented in Chapter 17, Common API. plgpage : Returning these measures as integers, given that some devices use, as stated in the docs, mm, seems restrictive; why artificially limit the resulting resolution to 1 mm? OS X uses floating point values to address screen coordinates and +/- 0.5 mm in the space of an ordinary display screen can be significant. plhls, plrgb1, and plrgb are not in Chapter 17. plimage does not appear in Chapter 17. plot3dcl does not appear in Chapter 17. plsxwin does not appear in Chapter 17. In Chapter 17 entry for plggriddata, "sg" should be "zg". "xptsy" should be "nptsy". The "d" option in plbox3 appears to be ignored when it is called before plline3 and plpoin3. Is there any way to draw grid lines on the z = zmin plane in 3D views? pltr0, 1, 2 are not adequately connected with plvect in the docs. The nature of the "additional input data" of pltr0, 1, 2 is hard to discern from the Programmer's Reference Manual. None of pltr0, 1, 2 use (or assign to) either zg or nz; it might be messing up my Ada variant record that does the job of PLcGrid because I can't make a zero-length zg which may be what C does when it is not defined. (???) I can't get any use of pltr1 (and probably pltr2, and maybe pltr0) to work without generating the output *** PLPLOT ERROR *** pltr1: Invalid coordinates This is probably due to either my binding or my test program, but is likely to remain broken for a while as I can't seem to get it fixed. See above comment about PLcGrid. Information about the exact memory layout of PLcGrid would be helpful. I have made an option to exchange Black and White in Color Map 0 (color 0 and color 15) because it is customary to work on a white canvas on Macintosh. This works fine using the excellent AquaTerm graphics terminal emulator on OS X. However, on X-windows (also running on OS X), when black and white are switched, only the first plot appears on a white background, and all others (in a particular run) appear on a black background. However, the line color remains switched, so that what were supposed to be black lines drawn on a white background are instead (after the first plot) black lines drawn on a black background, thus invisible. Another difference between running with AquaTerm and X-windows is that AquaTerm plots all the plots of a particular run one after the other in different windows, but X-windows (same binary) pauses after each plot until Return is pressed, then re-draws the next plot in the same window. There is a mention in the plplot.h about multiplot mode with respect to plenv and plenv0--maybe that is relevant, but I haven't been able to see any difference in behavior when using either plenv or plenv0 on either windowing system. |
From: Alan W. I. <ir...@be...> - 2006-08-16 14:09:00
|
Hi Jerry: Thanks very much for your notes on the API documentation (and also some notes on the results) of PLplot. Our API documentation is generated in doc/docbook/src/api.xml. Could you please send a patch with your suggested changes? Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the Yorick front-end to PLplot (yplot.sf.net); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: <hba...@ma...> - 2006-08-16 23:08:13
|
On Aug 16, 2006, at 5:40 AM, Jerry wrote: > I have made an option to exchange Black and White in Color Map 0 > (color 0 and color 15) because it is customary to work on a white > canvas on Macintosh. This works fine using the excellent AquaTerm > graphics terminal emulator on OS X. However, on X-windows (also > running on OS X), when black and white are switched, only the first > plot appears on a white background, and all others (in a particular > run) appear on a black background. However, the line color remains > switched, so that what were supposed to be black lines drawn on a > white background are instead (after the first plot) black lines drawn > on a black background, thus invisible. Did you setup the color table (with, for example, plscmap0n) prior to calling plinit()? Not all of the drivers support changing the color table "on the fly". > Another difference between running with AquaTerm and X-windows is > that AquaTerm plots all the plots of a particular run one after the > other in different windows, but X-windows (same binary) pauses after > each plot until Return is pressed, then re-draws the next plot in the > same window. There is a mention in the plplot.h about multiplot mode > with respect to plenv and plenv0--maybe that is relevant, but I > haven't been able to see any difference in behavior when using either > plenv or plenv0 on either windowing system. I believe that the difficulty here is that X-windows doesn't (at least easily) support "orphaned" windows. Since every window must have a running process associated with it, the X-windows driver was written to pause at plend()/pleop() so that the user would have a chance to see the graph before it was destroyed when the process ended, as would happen when you run one of the PLplot examples. This is also why all the plots are drawn in the same window. -Hazen |
From: Jerry <lan...@qw...> - 2006-08-17 04:21:40
|
On Aug 16, 2006, at 4:07 PM, hba...@ma... wrote: > > On Aug 16, 2006, at 5:40 AM, Jerry wrote: >> I have made an option to exchange Black and White in Color Map 0 >> (color 0 and color 15) because it is customary to work on a white >> canvas on Macintosh. This works fine using the excellent AquaTerm >> graphics terminal emulator on OS X. However, on X-windows (also >> running on OS X), when black and white are switched, only the first >> plot appears on a white background, and all others (in a particular >> run) appear on a black background. However, the line color remains >> switched, so that what were supposed to be black lines drawn on a >> white background are instead (after the first plot) black lines drawn >> on a black background, thus invisible. > > Did you setup the color table (with, for example, plscmap0n) prior to > calling plinit()? Not all of the drivers support changing the color > table "on the fly". Thanks. Calling plscmap0 before plinit makes X-windows work as expected. > >> Another difference between running with AquaTerm and X-windows is >> that AquaTerm plots all the plots of a particular run one after the >> other in different windows, but X-windows (same binary) pauses after >> each plot until Return is pressed, then re-draws the next plot in the >> same window. There is a mention in the plplot.h about multiplot mode >> with respect to plenv and plenv0--maybe that is relevant, but I >> haven't been able to see any difference in behavior when using either >> plenv or plenv0 on either windowing system. > > I believe that the difficulty here is that X-windows doesn't (at > least easily) support "orphaned" windows. Since every window must > have a running process associated with it, the X-windows driver was > written to pause at plend()/pleop() so that the user would have a > chance to see the graph before it was destroyed when the process > ended, as would happen when you run one of the PLplot examples. This > is also why all the plots are drawn in the same window. Thanks--I'l stop worrying about it. > > -Hazen > |