0

さて、私はいくつかのポリゴンを持っています(画像では白で輪郭が描かれています)。

すべてのポリゴンを足し合わせて、すべてのポリゴンの外側の境界である1つのポリゴンを取得するために、各ポリゴン(javaクラス)をArea(javaクラス)に変換してから、エリアを一緒に追加しました。 Areaクラスによって提供されるadd(Area a)メソッド。

そこから、領域をポリゴンに変換し直して、塗りつぶされたポリゴン(画像の紫色の領域)として描画しました。

しかし、これは私が期待していたものではありません。誰かが私がこれを正しく行うことができる場所であると考えることができますか、または少なくとも三角形の領域をポリゴンに追加するだけですか?

塗りつぶしを使用してすべての個別のポリゴンを描画すると、必要なもの(描画済み)が得られますが、ポリゴン表現が必要です。

欲しいもの

4

1 に答える 1

0

JTSの使用をお勧めします。結合したいジオメトリを作成し、unionメソッドを使用するだけです。その後、新しいジオメトリを使用して、以前のコードを使用してペイントできます。ユニオンの簡単なコード例:

// build polygon p1
Polygon p1 = new GeometryFactory().createPolygon(new Coordinate[]{new Coordinate(0,0), new Coordinate(0,10), new Coordinate(10,10), new Coordinate(10,0), new Coordinate(0,0)});
// build polygon p2
Polygon p2 = new GeometryFactory().createPolygon(new Coordinate[]{new Coordinate(0,0), new Coordinate(0,30), new Coordinate(5,30), new Coordinate(5,0), new Coordinate(0,0)});
// calculate polygon3 as the union of p1 and p2
Polygon p3 = (Polygon) p1.union(p2);
// print simple WKT
System.out.println(p3.toText());

この場合の出力は (予想どおり):

POLYGON ((0 0, 0 10, 0 30, 5 30, 5 10, 10 10, 10 0, 5 0, 0 0))
于 2016-07-11T07:14:34.153 に答える