問題タブ [delaunay]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
542 参照

c++ - 単純な多角形の delaunay 三角形分割を実行し、cgal の任意の三角形の隣接点を見つけるにはどうすればよいですか?

CGAl、ポリゴンの Delaunay 三角形分割 (単純な穴なしで cw 順) を使用して、Delaunay 三角形分割から生成された三角形の隣接三角形のリストを取得するにはどうすればよいですか?

0 投票する
2 に答える
482 参照

mesh - 適応点分布で 1 つの非多様体メッシュを取得する方法

1 つの点群から 1 つの三角形メッシュを取得しようとします。メッシュは多様であることが期待され、三角形は適切な形状または正三角形であり、点の分布は曲率に関して適応的です。このウェブサイトで提供される貴重な情報があります。

点群から表面を再構築するための堅牢なアルゴリズム?

x、y、z 座標の点からのメッシュ生成

ポアソン再構成アルゴリズムを試してみましたが、三角形の形が整っていません。 小さな三角形がたくさんあります

そのため、三角形の品質を向上させる必要があります。重心ボロノイ テッセレーション (CVT) がそれを達成できることを学びましたが、操作によって非多様体頂点と自己交差が導入されるかどうかはわかりません。それについての情報をあなたから得られることを願っています。

次の投稿のメッシュはかなり良さそうです。

ポリゴンをポイントで定期的に埋める方法は?

Delaunay 改良アルゴリズムが使用されます。delaunay リファインメント アルゴリズムを三角形メッシュに直接適用できますか? 最初にメッシュの点群のドローネ三角形分割を行い、次にドローネ三角形分割からの情報を使用してドローネ精密化を実行する必要がありますか?

ありがとう。よろしくジョギング

0 投票する
1 に答える
4733 参照

image - Delaunay 三角形分割による画像モーフィング

キーポイントとドローネ三角形分割を使用して 2 つの画像を変形する単純なアルゴリズムを開発しています。アイデアは単純でなければなりません:

  • ソース管理ポイントを選択する
  • 目的地のコントロール ポイントを選択します
  • ソース フレームと宛先フレームのドローネ三角形分割を取得する
  • ソース画像の各ピクセル
    • ピクセルが存在するソース三角形に関連するピクセルの重心座標を取得します
    • ピクセルが位置する目的の三角形に関連するピクセルの重心座標を取得します
    • 関係 Px = w1*v0x + w2*v1x + w3*v2x (y と宛先ピクセルも同じ) を使用して、OUT[PdestX,PdestY] = IN[Px,Py] を割り当てます。

しかし、それは動作しません X_X これは私の matlab ソースです:

これらは、コントロール ポイントを取得するためのユーティリティ関数です。

そして、この関数(私はネット上で見つけました)は、ポイントが特定の三角形上にあるかどうかをテストし、u、v、w の値を返します。

なにか提案を?さよなら!

0 投票する
1 に答える
333 参照

c++ - 円のドロネー三角形分割のやり方

C ++で円のドロネー三角形分割を作成する方法を知っている人はいますか? 私はすでに 1 つのソリューションを持っていますが、それは非常に効率的です。例として openCV delaunay.c を使用しました。誰かが似たようなことをして、ヒントをくれないかと思っていました。

0 投票する
2 に答える
3067 参照

c++ - C++ での Delaunay 三角形分割

次の手順では、A と B の 2 つの点から開始し、三角形を形成するために使用する点 C を決定しようとしていると想定しています。

を。指定された点 C が 2 つの点 A と B によって形成される線の左または右にあるかどうかを判断するメンバー関数を作成します。ヒント: これを行うには、2 つの点 A と B の間のベクトルとベクトルの外積をとります。外積は 2 つのベクトル間の角度の正弦に比例するため、0 ~ 180 度の角度の正の値になります (つまり、点 C が A からの線の左側にある場合)。 B)に。

b. 特定の点が他の 3 つの点によって形成される円の内側にあるかどうかを判断するメンバー関数を作成します (この場合、3 つの点は三角形の点になり、結果の円は外接円になります)。ヒント: この関数の非常に洗練された実装は、ウィキペディアの Delaunay Triangulation のエントリにあります。この実装を借用する場合は、徹底的にテストして参照し、ラボ レポートでどのように機能するかを説明してください。

c. 2 つの点を指定して、次の Delaunay 三角形の点を見つけるメンバー関数を作成します。この関数はリスト全体を検索でき (最も効率的な実装ではありませんが、この演習では十分です)、上記の 4a および 4b で定義された関数を呼び出す可能性が高くなります。

d. 上記の 4c から関数を呼び出して次の点 C を見つける再帰メンバー関数 Delaunay(Point A, Point B) を作成します。点 C が見つかった場合、この関数は新しい三角形を三角形ベクトルに挿入し、ポイント リスト内のブール変数。次に、この関数は、ポイント A と C を使用して、さらにポイント C と B を使用して、再帰的に自身を呼び出す必要があります。関数にも 2 つの基本ケースがあることを確認してください。1 つは、C で見つかった点が既に使用されている場合です。この場合、三角形を追加する必要がありますが、再帰呼び出しは発生しません。ポイント C が見つからない別のケース (A と B がデータセットの外側のエッジを形成するため)

私はコードを完成させましたが、デバッグプロセスでエラーが発生し続けているようで、読み取り関数に絞り込んだと思うので、ここに私のコードがあります:

//TASK 4a: 与えられた点 C が 2 つの点 a と b による直線の左側か右側かを判断します

//タスク 4b: 与えられた点が他の 3 つの点によって形成される円の内側にあるかどうかを判断する

//タスク 4c: 与えられた 2 つの点から、次のドローネ三角形の点を見つけます

//タスク 4d: 再帰メンバー関数 Delaunay、次のポイント C を見つけるための上記の 4c からの呼び出し

0 投票する
1 に答える
2699 参照

time-complexity - 高速 (O(nlogn)) 制約付き Delaunay 三角形分割アルゴリズム

O(nlogn)時間で制約付きドローネ三角形分割を作成するアルゴリズム(知っている場合は研究論文へのリンク)、および再計算を必要としない制約と頂点の削除と追加を可能にするアルゴリズムを知っている人はいますかCDT全体?

0 投票する
2 に答える
1282 参照

c++ - C++ プロジェクトで Triangle/Triangle++ ライブラリを既に使用している人はいますか? (ドロネー三角形分割)

私は SFML を使用しており、ランダムなポイント セットのドローネ三角形分割を作成したいと考えています。

http://www.cs.cmu.edu/~quake/triangle.html

C++ラッパーであるtriangle++を使用しています

http://www.compgeom.com/~piyush/scripts/triangle/

それらを追加しました#defines

これはコンパイルされ、罰金を実行しますが、それらを計算したので、頂点間のエッジを取得するにはどうすればよいですか?