地形エディターを作成していますが、一連のポイントの境界ポリゴンを見つける必要があります。凸包だけが必要な場合は、速度は問題になりません。凹型の船体を作るには、いくつかのフープを通過する必要があります。ポイントを三角形分割し、ポイント間の既知の距離よりも長い辺を持つ三角形を破棄できることがわかりました。
次のステップは問題です: JSTS ジオメトリ ライブラリ ( http://github.com/bjornharrtell/jsts ) を使用して三角形 (ミニ ポリゴンとして) を 1 つの大きなポリゴンに結合するのは非常に遅いです。
完全なコードを参照してください: http://codepen.io/anon/pen/oCfDh
最終的なポリゴンを形成するためにマージされる配列 (ポリゴン) があります。問題は、552 ポイント (15k+ をサポートしたい) の場合、実行に約 3500 ミリ秒かかることです。あなたの速度については、codepen リンクのコンソールを見てください。
var reader = new jsts.io.WKTReader(),
merged = reader.read(polys[0]).union(reader.read(polys[1]));
console.time('jsts mergization');
for(var i = 2; i<polys.length; i++){
try{
merged = merged.union(reader.read(polys[i]));
}catch(err){
console.log('Error triangulating points!');
};
};
console.timeEnd('jsts mergization');
三角形をポリゴンにマージするか、さらに広くして、まったく異なる方法でポイントのセットから凹型ポリゴンを構築するより高速な方法を知っている人はいますか?