ポイントのセットが与えられS (x, y, z)
ます。convex hull
それらのポイントを見つける方法は?
ここからアルゴリズムを理解しようとしましたが、あまり得られませんでした。
それは言います:
最初にすべてのポイントを xy 平面に投影し、y 座標が最も高いポイントを選択して、エッジのもう一方の端点を決定するためにギフト ラッピングを 1 回繰り返して、確実に船体上にあるエッジを見つけます。これは未完成の船体の最初の部分です。その後、船体を繰り返し構築します。この最初のエッジを考えてみましょう。ここで、船体の最初の三角形の面を形成するために別の点を見つけます。これは、他のすべての点がこの三角形の右側にあるようにポイントを選択することによって行われます (適切に表示された場合) (ギフトラッピングのアルゴリズムと同様に、他のすべての点が三角形の右側にあるようにエッジを選択しました)。その端)。船体には 3 つのエッジがあります。続行するには、それらのいずれかを任意に選択します。もう一度すべてのポイントをスキャンして別のポイントを見つけ、このエッジで新しい三角形を作成し、エッジがなくなるまでこれを繰り返します。(新しい三角形の面を作成するとき、プールに 2 つのエッジを追加します。ただし、最初にそれらが既にハルに追加されているかどうかを確認する必要があります。その場合、それらは無視されます。) O(n) 個の面があり、残りのすべてのポイントをスキャンする必要があるため、各反復には O(n) 時間がかかり、O(n2) が得られます。
誰かがそれをより明確に説明したり、より単純な代替アプローチを提案したりできますか?