我已经创建了一个自定义形状,本质上它是一个由四个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);
}发布于 2010-07-27 12:46:03
我对graphics.But了解不多,我在sun的网站上看过这些例子,我只是把这个链接贴出来,以备你需要。http://java.sun.com/products/java-media/2D/samples/suite/index.html
发布于 2010-07-28 02:31:45
更改GeneralPath的缠绕规则
gp.setWindingRule(GeneralPath.WIND_NON_ZERO);发布于 2019-10-11 15:41:00
另外,尝试使用带有true的append作为第二个参数,它将连接点。
https://stackoverflow.com/questions/3337009
复制相似问题