3

我得画个图。我使用 AWT 库来做到这一点。

问题是,我需要画出非常细的线。但我总是得到太粗的线条。

在这里你可以看到,我的意思。

在此处输入图像描述

这是绘制这些线条的代码

BufferedImage image = new BufferedImage(300, 60, BufferedImage.TYPE_INT_ARGB);
Graphics g = image.createGraphics();
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.BLACK);
g2.setStroke(new BasicStroke(0.001f,BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER));
Shape s = new Line2D.Double(new Point2D.Double(x_pos, unten - 9),
                            new Point2D.Double(x_pos, unten - 4));
g2.draw(s);
4

2 回答 2

1

代替

Shape s = new Line2D.Double(new Point2D.Double(x_pos, unten - 9),
                            new Point2D.Double(x_pos, unten - 4));
g2.draw(s);

尝试使用

g2.drawLine(x_pos, unten - 9, x_pos, unten - 4);

这些Shape东西并不能真正应对低于 1 的厚度......(据我所知)

并且请不要在编码时混合使用不同的语言,这会让我患上眼癌(即使它是德语):P。最好的是,坚持使用英文变量名,因为所有关键字也是英文的。

于 2012-06-14T14:11:02.080 回答
0

尝试:

g2.setStroke(new BasicStroke(0.5f));

或任何其他适合您需要的值。

于 2020-10-08T06:48:28.900 回答