x-monotoneポリゴンを三角形分割する方法がわかりません。私はthis articleを参照しています。私は、頂点が耳であるかどうか、そして対角があるかどうかをチェックする方法を理解していません。x-monotoneポリゴンを三角形分割する
答えて
n^2時間アルゴリズムであるear cuttingを参照してください。単純なポリゴンを三角形分割する多くの単純なアルゴリズムがあります。最も単純なn log n時間アルゴリズムの1つは、最初に単純なポリゴンを単調なピースに分割し、次にこれらのピースを三角形分割することから成ります。この場合の分割はn log nを要する。あなたのケースでは、モノトーンを既に持っているので、線形時間でx-monotoneポリゴンを簡単に三角形分割できます。
この簡単なアルゴリズムの良い説明は、たとえばComputational Geometryという本にあります。
おおよそのアイデアは、ポリゴンがxモノトーンであることを知っています。したがって、2つの単調なチェーン(上下)に分割します。今度は、両方のチェーンに沿って歩いて、視認性チェックなしに2つのチェーンの間に対角線を挿入できます。次のより低いチェーン頂点がより小さいx値のものである限り、あなたは上のチェーンに沿って進む。あなたの頂点が反射している場合、それをスタックに置きます。そうでなければ、反対側に対角線を挿入します。他のチェーンの次のステップを実行するときは、最初にスタックのすべての頂点に対角線を挿入し、このルーチンを実行します。
これは私がやることです。ありがとう。 – monsterman
13/25ページの「三角測量:理論」を参照してください。この図は、pが耳の頂点であるかどうかを調べるテストを示しています。その隣人はqとrです。線分qrが対角であれば、pは耳にある。
他の頂点があるかどうかをテストしたり、他の稜線セグメントが交差しているかどうかをテストして、斜め線かどうかをテストします。
- 1. ポリゴンの三角形分割
- 2. ポリゴン三角形分割
- 3. Boostでポリゴンを三角形分割する方法は?
- 4. OpenCV:Delaunay三角形分割から三角形を抽出する
- 5. 共線点を持つポリゴン三角形分割?
- 6. matplotlibを使ったポリゴンの三角形分割
- 7. BSPベースのポリゴン三角形分割の実際の例
- 8. vtkDelaunay3Dセマンティック三角形分割
- 9. パラレルデラウネイ三角形分割アルゴリズム
- 10. ドロネー三角形分割
- 11. ボクセルの三角形分割
- 12. パラレルデラウネイ三角形分割
- 13. 分割する三角形を添付
- 14. 部分三角形分割を完了するアルゴリズム(制約付き三角形分割)
- 15. ポリゴンを三角形に変換する
- 16. 疑似重複ポイントでThree.jsポリゴン三角形分割が失敗する
- 17. これらの三角形を作成する三角形分割アルゴリズム
- 18. スレッドセーフな三角形分割ライブラリ
- 19. 3DでのDelaunay三角形分割
- 20. earcut.js穴の三角形分割
- 21. フェードインライブラリドロネー三角形分割サイトのネイバー
- 22. 点集合三角形分割が三角形分割であるかどうかをチェック
- 23. サブフォルダの「三角形」へのパスを分割する
- 24. 無向グラフに相当するDelaunay三角形分割
- 25. ランダムな内側の点を使わずにポリゴンを三角形分割する方法は?
- 26. OpenGLESの三角形ファンでポリゴンを描画する
- 27. MATLAB三角形分割による面データの整列
- 28. 穴を持つ最も速い三角形分割アルゴリズム?
- 29. PythonとOpenCVを使ったDelaunay三角形分割
- 30. 既知の境界を持つ凹面メッシュ三角形分割
ようこそStackOverflow!それは良い記事ですが、URLが変更された場合、この質問はすぐに時代遅れになる可能性があります。あなたのポストの主要な部分としていくつかのサンプルコードを投稿してください。 – cdomination
私はアルゴリズムを理解することができないので、まだコードはありません。 – monsterman