When you talk about zooming, are you referring to zooming in on a page - simply scaling everything up and showing only a portion of it or are you talking about changing the axes of a plot based on mouse clicks and keyboard input?
I'd be interested in helping with the wxWidgets driver.
Date: Thu, 30 Aug 2012 09:28:49 -0700 (PDT)
From: "Alan W. Irwin" <irwin@...>
Subject: [Plplot-devel] Interactive capabilities of PLplot
To: Jerry <lanceboyle@...>, PLplot development list
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII
On 2012-08-30 02:26-0700 Jerry wrote:
> Does the Tk interactive method allow the user to use a mouse to
interactively select a rectangular portion of the plot for zooming?
This would certainly be useful and then I would have an actual
personal interest in this work. Do any of the interactive devices
allow this? X, Aquaterm and Qt do not--those are the only ones that I
This question introduces a new topic, so I am using a different subject
The xwin, tk, xcairo, and qtwidget devices all allow mouse and
keyboard interaction. Try example 1 in C with the --locate option to
demonstrate this for yourself. With each mouse button or keyboard
character hit, the position and which mouse button/key was hit is
returned (with the exception of qtwidget where the key/mouse
identification is still missing.) The mouse button/key identification
and position is all that is required from our devices to allow
higher-level interactive capability such as zooming.
Note that high-level interactive use has to be programmed at the
application level. For example, I used an interactive plotting system
in the early 80's built off of plotting device drivers for plotting
software available at that time which had the fundamental interactive
capability we have in at least 3 of our interactive devices above.
That system had a help mode (initiated by hitting the "?" key) that
gave a list of some 20 different interactive modes you could start by
hitting a particular key). This system was designed to help analyze
astronomical absorption spectra (flux as a function of position in the
direction of dispersion in the spectrograph) so there were modes to
help find line positions, modes to help determine the continuum
between lines, take equivalent widths of lines, calibrate the
dispersion relation (wavelength as a function of position), zoom in x
position (or wavelength), zoom in y position (flux), zoom in both
coordinates, etc. At some point, I plan to write an application that
reimplements this useful interactive system based on the currently
existing fundamental PLplotinteractive device capabilities.
Note, some higher-level interactive capability (zooming) has already
been implemented for our tk device, but that would potentially
interfere with implementation of higher level interactivity in
applications like I have just described. So I definitely don't want
to see, e.g., zooming capability implemented for all our interactive
devices. On the other hand, I do want to see the fundamental
interactive capability available for all our interactive devices so
we do need a volunteer to add mouse button/key identification for
I think we should also promote the fundamental interactive
capabilities of our interactive devices a lot more since few (or
none?) of our users seem to be aware of those. So I suggest a
volunteer who has time/interest here modify example 1 to do just that.
For example, it should be possible to implement zooming for that
particular example by e.g., looking for the z key being hit (to
initiate zooming), and then look at the position of the next two key
strokes after that to identify the zooming box, then plot that zoomed
area. And keep in zoom mode thereafter, until, say, the e key is hit
to exit zooming mode. Making sure that capability worked for all our
languages would probably be challenging (since we have never tried
that before), but I think it would be well worth doing since we cannot
anticipate what language someone will want to use to implement an
interactive plotting application. That new capability for example 1
along with a DocBook section and some release notes advertising that
new capability would be a good way to promote the current fundamental
interactive capabilities of our interactive devices so that users
would start using those in interactive applications they have
developed for themselves.
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); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).