Java:具有填充形状的线条笔划

时间:2011-04-01 05:34:16

标签: java swing user-interface stroke

这不是很重要,但它让我困扰了一段时间。

问题描述:
鉴于:一条线(Line2D)
通缉:将线条绘制为楔形(填充的GeneralPath)

当然,这可以通过将Wedge创建为General Path然后通过Graphics(我的解决方案)填充它来完成。

我的第一种方法是楔形线,因为我不想因某种原因改变线对象,我只是想绘制线对象而不再考虑它。 创建楔形笔划没有问题(一些计算然后创建一般路径) - 但我无法填充(轻松)

显然,看起来Graphics2D的填充只会填充它所获得的形状 - 并且不会处理笔画的填充(如果有人想到这种行为就有意义了。)

问题:有没有办法填充笔触的形状(填充形状 - 更具体地说:一个GeneralPath - 在绘制之前以某种方式)?

3 个答案:

答案 0 :(得分:3)

如果你在那里通过Line2D,BasicStroke.public Shape createStrokedShape(Shape s)可能有帮助吗?

答案 1 :(得分:3)

使用createStrokedShape()后,请注意draw()“会勾勒出Shape的轮廓,”而fill()“会填充Shape的内部。 “

答案 2 :(得分:0)

import java.awt.*;

public static Shape strokeToShape(Shape path, float strokeWidth)
    return new BasicStroke(strokeWidth).createStrokedShape(path);
}

您还可以指定cap

joinBasicStroke参数