カスタム シェイプを作成しました。基本的には、4 つの Arc2D オブジェクトのコレクションです。
これらの円弧を描くと、クローバーのような 4 点の丸い星の形と見なすことができます。1 つの弧が終わると、もう 1 つの弧が始まります。それらは中央に正方形を形成します。想像してみてください。正方形を取り、四方に半円を描きます。
この形状を 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);
}