Its going to depend on a couple of factors. Axis scales are
drawn in graphics coordinates which are then passed through
the transform matrix in ProjectionControl. The only way I
could answer your question would be to dig into the code in
On Mon, 1 Apr 2002, Brandon Kohn wrote:
> 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.
> ----- Original Message -----
> From: "Bill Hibbard" <billh@xxxxxxxxxxxxx>
> To: "Brandon Kohn" <blkohn@xxxxxxxxxxx>
> Cc: <visad-list@xxxxxxxxxxxxx>
> 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
> > > 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
> > > is that when the graph is resized this way it is centered in the panel
> > > only the box coords, not the box plus the axes. So, when I resize the
> > > to say 75% + of the window, the axis labels are out of the canvas.
> > > less than 75% leaves alot of whitespace all around the graph (which is
> > > I want to avoid). I figure one way around this problem is to calc the
> > > of the axes and then translate the box up and left by these amounts.
> > > 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
> > > 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