[R] transforming output of grid.locator() to coordinates of a leaf viewport

Wittner, Ben, Ph.D. Wittner.Ben at mgh.harvard.edu
Sun Jun 1 20:50:51 CEST 2008

Short form:

		How do I transform the output of grid.locator() (or
grid.locator(unit='npc')) to the native (or npc) coordinates of a viewport other
than the top-level viewport?

		Thanks in advance. -Ben

Long form:

		I would like the user to be able to click anywhere on the R
graphics window. I would then like to figure out which leaf viewport the user
clicked in and compute the native coordinates in that leaf viewport of the
user's click.

		I saw a 2005 response by Paul Murrell to a post by Gabor
Grothendieck roughly on this topic in which Paul suggested looking at
trellis.focus(). I've looked at trellis.focus() and trellis.clickFocus(), but
they don't appear to do what I want in that a) it would appear that my user
would have to click twice, once to specify which leaf viewport and then again to
specify which point in that viewport and b) trellis.clickFocus() appears to use
lots of information from the trellis package, which I'm not using.

		So I decided to try to figure out the native coordinates of the
click in each leaf viewport, to a) see whether the click is within the plotting
region for that viewport and b) use those coordinates to take the appropriate
action if it is. But I don't seem to be able to figure out how to translate from
the top-level viewport coordinates to those of a leaf viewport. I tried
interpreting the 3X3 matrix returned by current.transform() as an affine
transformation in the x,y plane in homogeneous coordinates, but could make no
sense of what I was getting.

		Thanks for any help. -Ben


The information transmitted in this electronic communica...{{dropped:16}}

More information about the R-help mailing list