That is precisely what I needed.  I was using 
JSVGCanvas.getRenderingTransform() and that didn't quite work.  That works for 
my boxes and ellipses, but is there a similar school of thought, using the 
AffineTransform for Line2D, a set of points (later used to create a polyline) 
and text??
 
Michael Bishop

________________________________

From: Steiner, Dominik [mailto:[EMAIL PROTECTED]
Sent: Tue 10/18/2005 7:46 AM
To: [email protected]
Subject: AW: Translations with zoom in and zoom out?



Hi Michael,

 

I'm not sure if this helps you, but I would suggest that you transform the 
screen coordinates to viewbox coordinates. I first let the user draw on screen 
coordinates and when he finished I do the transformation to viewbox coordinates 
as follows:

 

  public static Shape scaleShapeToViewbox(Shape shape, SVGCanvas canvas) {

    try {

      AffineTransform at = canvas.getViewBoxTransform().createInverse();

      shape = at.createTransformedShape(shape);

    } catch (NoninvertibleTransformException e1) {

      e1.printStackTrace();

    }

    return shape;

  }

 

So this works for my Java2D shapes....

I hope it helps...

 

Dominik

________________________________

Von: Bishop, Michael W. CONTR J9C880 [mailto:[EMAIL PROTECTED] 
Gesendet: Montag, 17. Oktober 2005 20:44
An: [email protected]
Betreff: Translations with zoom in and zoom out?

 

OK, so I have the JSVGCanvas zooming in and zooming out.  Since I have a 
whiteboard application, users can draw objects to the canvas.  Much like 
typical art programs, you get an "outline" of what you're going to draw before 
it's placed.  For a box, you click, drag the mouse to the desired size and 
release.  I guess they call it "rubber-banding" or whatever.

 

On to my question.  When the canvas is zoomed in/zoomed out, how can I get the 
translation correct on the glass pane?  The glass pane is currently drawing 
based on the coordinates of the JSVGCanvas, but it draws as if the JSVGCanvas 
isn't zoomed in or out.  In short, what the glass pane is rendering is not 
zoomed, but what the JSVGCanvas is rendering is.  So what you see isn't what 
you get when you let go of the mouse.  How can I translate my shapes based on 
the zoom?  If I draw something on a canvas that is zoomed in 20%, I'd like to 
scale the outline 20%...etc.  That degree of scaling is what I don't know how 
to get.

 

Michael Bishop

<<winmail.dat>>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to