Hello again,
You wouldn't happen to know how I can calculate the 'height' of the axis
(height when the long portion of the axis is horizontal)? Should be
linewidth + offset from box + ticksize + label size. I've been playing
around in AxisScale, but I haven't really gotten a firm grasp on where these
values are located.
Thanks
Brandon
----- Original Message -----
From: "Bill Hibbard" <billh@xxxxxxxxxxxxx>
To: "Brandon Kohn" <blkohn@xxxxxxxxxxx>
Sent: Saturday, March 30, 2002 1:50 PM
Subject: Re: translation howto?
> Hi Brandon,
>
> > I'm attempting to create a 2D graph display that resizes when it's
parent
> > window resizes. I'm using the autoAspect feature and some resizing code
> > that I found on a JPython script sheet that resizes the box to some
> > percentage of the window via the matrix in ProjectionControl. The
problem
> > is that when the graph is resized this way it is centered in the panel
using
> > only the box coords, not the box plus the axes. So, when I resize the
box
> > to say 75% + of the window, the axis labels are out of the canvas.
Anything
> > less than 75% leaves alot of whitespace all around the graph (which is
what
> > I want to avoid). I figure one way around this problem is to calc the
sizes
> > of the axes and then translate the box up and left by these amounts.
Then
> > do the resize. This seems like a pretty bad hack, and I'm wondering if
> > there is a better way to do this. If I'm stuck with the hack, is there
a
> > simple way to do the translation?
>
> I wouldn't call it a hack, since any code that does what you
> want will have to make this calculation. The only question is
> whether that code is encapsulated behind some simple API.
>
> There is no such method that I know of in VisAD, so you'll
> probably have to code one yourself. You can use the make_matrix()
> method of MouseBehavior (get the MouseBehavior from the
> DisplayRenderer, which you get from the DisplayImpl) to
> convert a translation into a matrix, then use MouseBehavior's
> multiply_matrix() method to combine it with the matrix you
> get from ProjectionControl.getMatrix(), and pass the result
> back to ProjectionControl.setMatrix().
>
> Good luck,
> Bill
>
>