Java - 绘制线条粗细为1的放大形状

时间:2012-07-31 18:34:29

标签: java scale draw shape graphics2d

使用Graphics2D.scale();并绘制形状时,轮廓粗细也会缩放。

有没有办法在不缩放线条粗细的情况下绘制它?除了使用上述函数之外,还有另一种有效的扩展方法吗?

3 个答案:

答案 0 :(得分:1)

This question is similar。看起来你必须使用Stroke对象来设置正确的线宽。

答案 1 :(得分:0)

您必须将图形保存为线条矢量列表,并缩放和渲染各种尺寸的图形以保持所需的线条粗细。

答案 2 :(得分:0)

我刚刚找到了解决自己问题的方法。我不知道它有多高效,但它按预期工作:

Area area = new Area(myShape); //myShape is the shape I want to scale
AffineTransform at = new AffineTransform();
at.scale(2,2);
area = area.createTransformedArea(at);
graphics2d.draw(area); //graphics2d is the Graphics2D instance to do the drawing

也许有人可以告诉我这是否是一个好的方法?