使用绘制位置与平移变换时,Graphics2D文本在不同位置绘制

时间:2014-05-28 15:31:18

标签: java graphics2d

如果我这样做:

g.drawString("9", (float) 10, (float) 50);

文本“9”将在像素x位置10处绘制。

同样,如果我这样做:

g.translate(10, 0);
g.drawString("9", (float) 0, (float) 50);

文本将再次在x-position 10处绘制。

但是,如果我这样做:

g.translate(9.5, 0);
g.drawString("9", (float) 0.5, 50);

文本将显示在右侧1个像素,大概在x位置11。

这是一个垂直参考线的样子(放大4倍)。

example image

我认为这是图形渲染器中发生的某种舍入错误。有没有办法确保第3个“9”绘制在与前两个​​相同的x位置?

1 个答案:

答案 0 :(得分:1)

你可以自己围绕坐标,只传递给Graphics2D整数。