我创建了一个自定义形状,本质上它是四个 Arc2D 对象的集合。
当这些弧线被绘制出来时,它们形成了一个可以被认为是四点圆形星形,有点像三叶草。一条弧线结束的地方,另一条弧线开始。它们在中心形成一个正方形。所以想象一下,取一个正方形,在每一边画半个圆圈。
我可以将此形状绘制到 Graphics2D 对象,但是当我填充它时,它只会填充弧线而不是中心正方形。填充这个内部方块是我的问题。
我已经实现了getPathIterator()
下面的方法。我也实现了这些contains()
方法。但它仍然只会填充弧线。
我试图添加一个Rectangle
. 填充形状时,矩形/正方形会被正确填充,但是它也会绘制矩形,这显然应该是预期的,但绝对不是预期的结果。
那么,有人对如何“填充”这样的形状有任何想法吗?
public PathIterator getPathIterator(AffineTransform at) {
GeneralPath gp = new GeneralPath
for (Arc2D arcs : this.arcs) {
gp.append(arc, false);
}
return gp.getPathIterator(at);
}