2

三角形がすべてくっついているイメージをプログラムで作成しようとしています。私がこの問題に取り組む方法は、いくつかのポイントをランダムに選択し、それらを「接続」して三角形を作成することです。問題は、それらを接続する良い方法を思いつかないことです。

私がやろうと思ったことの 1 つは、最初にランダムなポイント (ポイント 1) を選択し、次に最も近いポイント (ポイント 2) を見つけて、それらを「接続」することでした。次に、ポイント 1 とポイント 2 からの合計距離が最小になるポイントを選択して、最も近い 3 番目のポイントを見つけます。これにより、1 つの三角形が得られます。たくさんの三角形ができるまでこれを繰り返すことができます。ここでの問題は、三角形が別々になることです (それらは接続されません)。

私はこれを愚かに考えすぎていますか?これを行う簡単な方法はありますか?

4

2 に答える 2

6

あなたが探しているのはDelaunay 三角形分割です!

基本的には、3 つの点を通過する円に他の点が含まれていない場合、3 つの点を三角形にグループ化することであり、それを効率的に行います。1 つの線上に点がある場合や、同じ円上に 3 つ以上の点がある場合があります。

于 2012-08-02T21:03:56.913 に答える
1

最初のステップは 3 つのエッジを作成することだと考えてください。次に、これらの各エッジを取得して、それぞれに追加のポイントを持つ新しい三角形を作成します。理論的には、エッジごとに 2 つの三角形が必要です。

于 2012-08-02T21:02:12.573 に答える