第一个“foo”是正常的,但第二个是如此巨大,我只能看到“f”的基础。 font-size是默认值。
BufferedImage image = new BufferedImage(500, 500, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = image.createGraphics();
Shape ellipse = new Ellipse2D.Double(0, 0, 1.0, 1.0);
g2.setPaint(Color.RED);
g2.drawString("foo", 100, 100);
g2.scale(500.0f / length, 500.0f / length);
g2.drawString("foo", 1, 1);
更改字体大小无济于事,因为它只允许int
尺寸,而且对于比例尺有意义的尺寸类似于0.02
。
我需要在缩放空间中绘制文本的原因是因为我正在绘制节点网格,我想将坐标缩放到每个维度中的节点数。这样我就不必进行复杂的计算了。
我需要用文字标记边缘。
更新:每次我想要绘制文本时,我都可以通过执行以下序列来获取文本:保存变换,转换为缩放空间中的所需位置,取消缩放,绘制(0, 0)
处的文字,并恢复转换。
答案 0 :(得分:2)
您可以使用Font方法
public Font deriveFont(float size)
获取所需的字体大小字体。猜猜0.02应该没问题。