Re: [JAVA2D] Problem rendering text with affine transforms

2009-04-01 Thread java2d
Thanks, works great! I love simple solutions :)
[Message sent by forum member 'typically' (typically)]

http://forums.java.net/jive/thread.jspa?messageID=340052

===
To unsubscribe, send email to lists...@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST".  For general help, send email to
lists...@java.sun.com and include in the body of the message "help".


Re: [JAVA2D] Problem rendering text with affine transforms

2009-03-24 Thread java2d
With setTransform(transform), you are completely replacing the existing 
transform. Use [b]Graphics2D.transform(transform)[/b] instead, to preserve the 
transformation values that have been previously set by the paint mechanism.

Piet
[Message sent by forum member 'pietblok' (pietblok)]

http://forums.java.net/jive/thread.jspa?messageID=338723

===
To unsubscribe, send email to lists...@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST".  For general help, send email to
lists...@java.sun.com and include in the body of the message "help".


[JAVA2D] Problem rendering text with affine transforms

2009-03-24 Thread java2d
Hi all,

Couldn't find a specific thread addressing this, so I'll post a new one. It may 
just be that I am still naive about Java2D...

I have a simple window which renders stuff and draws a grid on top. I've 
recently added code which renders labels for the grid lines; this works fine, 
except when the window repaints itself after being obscured or resized; in this 
case, the horizontal labels always render properly, but the vertical labels 
(which have an AffineTransform applied) do not (see this image: 
http://www.typically.net/FTP/2d_grid_bug_all.png ).

The code which renders the labels is:

[code]
double space = grid.getSpacing();
int size = grid.getLabelSize();
Font font = new Font("Courier New", Font.PLAIN, size);
Color c = grid.getLabelColour();
g.setColor(c);
g.setFont(font);
FontRenderContext frc = g.getFontRenderContext();
int margin = 2;
int offset = 1;
String format = NumberFunctions.getReasonableFormat(space);

AffineTransform transform_old = g.getTransform();

for (; x_pos < x_max; x_pos += space){
Point pt = getScreenPoint(new Point2f((float)x_pos, (float)y_min ));
pt.y -= margin;
pt.x -= offset;
TextLayout tl = new TextLayout(arDouble.getString(x_pos, format), font, 
frc);
AffineTransform transform = new AffineTransform();
transform.rotate(-Math.PI / 2.0, pt.x, pt.y);
g.setTransform(transform);
tl.draw(g, pt.x, pt.y);
}

g.setTransform(transform_old);

for (; y_pos < y_max; y_pos += space){
Point pt = getScreenPoint(new Point2f((float)x_min, (float)y_pos ));
pt.x += margin;
pt.y -= offset;
TextLayout tl = new TextLayout(arDouble.getString(y_pos, format), font, 
frc);
tl.draw(g, pt.x, pt.y);
}
[/code]

Any idea what's going on?
[Message sent by forum member 'typically' (typically)]

http://forums.java.net/jive/thread.jspa?messageID=338644

===
To unsubscribe, send email to lists...@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST".  For general help, send email to
lists...@java.sun.com and include in the body of the message "help".