ポリゴンのリスト(IntPointのリストとして定義されています)があれば、それらのどれかが接触しているかどうかをチェックし、そうであればそれらを単一のポリゴンにマージします。今間違った結果を与えるポリゴンをマージすると合成する
List<List<IntPoint>> output=new List<List<IntPoint>>();
output = Clipper.SimplifyPolygons(input,PolyFillType.pftPositive);
と
Clipper c = new Clipper();
c.AddPaths(input, PolyType.ptClip, true);
c.Execute(ClipType.ctUnion, output);
彼らは任意の多角形のオープンスペースとしてビットoverzelousあるしかし、これらの両方が一緒に非常に簡単にポリゴンをマージ:これを行うためには、私はすでに、次の二つの方法を試してみました空白領域は無視され、単一のポリゴンに単純に結合されます。つまり、次のような意味です。
が発生します。これらの2つのポリゴンが互いに接触しないので、これは明らかに間違っています。両方の方法で同じ結果が得られます。結果は入力と同じになります。どのようにこれを修正するための任意のアイデア?解決策はクリッパーライブラリ(私はそれに結婚していない)を使用する必要はありませんが、ポイントのリストで定義されているポリゴンを使用するものが必要です入力はListです> Intpointはxとy。私は 編集編集「満たされた」は、他の多角形の内部にポリゴンが存在しない場合に、この問題が発生し、その解決策が常にあることに気づく
編集:ここでは、入力が
input[0][0]
{ClipperLib.IntPoint}
X: -724
Y: -472
input[0][1]
{ClipperLib.IntPoint}
X: 428
Y: -472
input[0][2]
{ClipperLib.IntPoint}
X: 428
Y: -472
input[0][3]
{ClipperLib.IntPoint}
X: 428
Y: 632
input[0][4]
{ClipperLib.IntPoint}
X: 428
Y: 632
input[0][5]
{ClipperLib.IntPoint}
X: -724
Y: 632
input[0][6]
{ClipperLib.IntPoint}
X: -724
Y: 632
input[0][7]
{ClipperLib.IntPoint}
X: -724
Y: -472
input[0][8]
{ClipperLib.IntPoint}
X: -88
Y: -218
input[0][9]
{ClipperLib.IntPoint}
X: -107
Y: -218
input[0][10]
{ClipperLib.IntPoint}
X: -107
Y: -218
input[0][11]
{ClipperLib.IntPoint}
X: -107
Y: -209
input[0][12]
{ClipperLib.IntPoint}
X: -107
Y: -209
input[0][13]
{ClipperLib.IntPoint}
X: -320
Y: -172
input[0][14]
{ClipperLib.IntPoint}
X: -320
Y: -172
input[0][15]
{ClipperLib.IntPoint}
X: -320
Y: 132
input[0][16]
{ClipperLib.IntPoint}
X: -320
Y: 132
input[0][17]
{ClipperLib.IntPoint}
X: -88
Y: 173
input[0][18]
{ClipperLib.IntPoint}
X: -88
Y: 173
input[0][19]
{ClipperLib.IntPoint}
X: -88
Y: -201
input[0][20]
{ClipperLib.IntPoint}
X: -88
Y: -201
input[0][21]
{ClipperLib.IntPoint}
X: -88
Y: -218
ようなものかもしれないものの一例です
この入力は、穴が切られた正方形です。
誰でもこの問題を説明するにはどうすればよいでしょうか?ポリゴンのポリゴンがマージされていますか?エンクレーブを許可しない? – Thijser
私は解決策を見つけたかもしれないと思うが、それはhttps://stackoverflow.com/questions/34263601/algoritm-for-translating-list-of-wallsections-into-coherent-polygonの答えに依存するだろう – Thijser