2

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

问题描述:
给定:一条线(Line2D)
想要:将线绘制为楔形(Filled GeneralPath)

当然,这可以通过将楔形创建为通用路径然后用图形填充它来完成(我的解决方案)。

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

显然,Graphics2D 的填充似乎只填充了它得到的形状 - 并且不处理笔划的填充(如果考虑一下,这种行为是有意义的)。

问题:有什么方法可以填充 Stroke 的形状(填充形状 - 更具体地说:GeneralPath - 在绘制之前以某种方式)?

4

3 回答 3

3

使用createStrokedShape()后,请注意draw()“描边 a 的轮廓Shape”,而fill()“填充 a 的内部” Shape

于 2011-04-01T14:26:06.177 回答
3

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

于 2011-04-01T05:42:57.543 回答
0
import java.awt.*;

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

您还可以指定capjoin参数BasicStroke

于 2016-05-20T10:11:12.280 回答