問題タブ [triangulation]
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.
algorithm - 単純な2Dポリゴンの三角形分割
単純な2Dポリゴンのセットを三角測量しようとすると、次のアルゴリズムが思い浮かびます。
- 1)ポリゴンの各頂点について、2つのリンクされたエッジ間の角度を計算します
- 2)ポリゴンの内部に対して角度を小さくして頂点を並べ替えます
- 3)セット内の頂点が3つ未満の場合、これで完了です。
- 4)セットの最後の頂点を取り、それとその2つの隣接する頂点によって形成される三角形を出力します
- 5)セットから頂点を削除します
- 6)2つの隣接する角度を更新します
- 7)2にジャンプ
テストしたところ、非常に大きくて複雑な単純な2Dポリゴンでも機能することがわかりました(穴のあるポリゴンや自己交差するポリゴンでは機能しません)。
退化した結果を生み出すコーナーケースはありますか?
このアルゴリズムは既知のものですか?
そうでない場合は、このアルゴリズムが堅実であることを確認したいと思いますが、それを証明する数学的背景はありません。
どうもありがとう。
iphone - Wifi 三角測量 - AP から iPhone までの距離
AP (アクセス ポイント) から iPhone までのおおよその距離を計算しようとしています。いくつかの定数:
1) 近くの AP の信号強度を見つけて判断するという問題は既に解決しています (プライベート API を使用する必要がありました。これが App Store に掲載されないことを心配する必要はありません)。
2) すべての AP が同じブランドとモデルである
AP のRSSIが与えられた場合、おおよその距離を取得するにはどうすればよいですか?
例: RSSI は -60 です。遠くに到達するには、他にどのような情報が必要ですか?
ありがとう!
java - Android 用の三角測量のチュートリアル
GPS を適用して現在地の緯度と経度を取得しましたが、特定の地域で GPS が場所を提供しないという問題があります。セル信号またはwifi信号に基づく三角測量技術のチュートリアルを教えてください。
optimization - 三角形の頂点がある場合、三角形内の任意の x、y 座標で z を見つける方法
三角形 T の頂点V1 (x1,y1,z1)
,V2 (x2,y2,z2)
が与えられた場合、それが三角形 Tp の射影内V3 (x3,y3,z3)
にあることがわかっている場合、その点の x,y 座標によって点の z 座標を見つける必要があります。(x,y)
(x1,y1), (x2,y2), (x3,y3)
実際、3D の三角形の平面は次の式で定義されAx+By+Cz+D=0
ますz = (D-Ax-By)/C
:
たとえばopenglシェーダーを使用して、A、B、C、Dを計算することは可能ですか? 平面係数を見つけるための最適化されたアルゴリズムはありますか?
java - このドローネ三角形分割のコードはどのように機能しますか?
私はこの Java コードを持っています。この Java コードは、一連の Point in input を使用して、Delaunay 三角形分割を表す一連のグラフのエッジを返します。
これを行うためにどのような戦略が使用されたか、存在する場合は使用されたアルゴリズムの名前を知りたいです。
このコードでは、GraphEdge は 2 つの awt Point を含み、三角形分割のエッジを表し、GraphPoint は Awt Point を拡張し、最終的な三角形分割のエッジは TreeSet オブジェクトで返されます。
私の目的は、この方法がどのように機能するかを理解することです。
この三角形分割の完全なソース コードの下:
math - 限界のある三辺測量?
私は問題を解決する助けを必要としています。問題は私の小さなロボット実験の1つで発生しました。基本的な考え方は、各小さなロボットが自分自身からオブジェクトまでの距離を概算する能力を持っているということです。取得が非常に粗いので、もっと正確なものを計算したいと思っています。
だから:
入力:頂点のリスト(v_1, v_2, ... v_n)
、頂点v_*
(ロボット)
出力:未知の頂点v_*
(オブジェクト)の座標
の各頂点v_1
のv_n
座標はよく知られており(呼び出しによって提供されgetX()
、getY()
頂点上にあります)、v_*
呼び出しによっておおよその範囲を取得することができます。getApproximateDistance(v_*)
、関数getApproximateDistance()
は2つの変数変数を返します。minDistance
およびmaxDistance
。-実際の距離はこれらの間にあります。
の座標を取得するために私がやろうとしているのv_*
は、三辺測量を使用することですが、制限(下限と上限)を使用して三辺測量を行うための式が見つからないようです。それが本当に私が探しているものです。 (数学が得意ではないので、自分で理解することはできません)。
注:代わりに三角測量を使用する方法はありますか?
注:パフォーマンスと精度のトレードオフを行う方法を知りたいと思います。
データの例:
データを表示する画像:http://img52.imageshack.us/img52/6414/unavngivetcb.png
上記のデータが作成する図は環の小さなカット(によって制限される)であるため、の近似v_1
がより良い可能性があることは明らかですが、それをどのように計算し、おそらくその図内で近似を見つけるのでしょうか(この図はおそらく凹面)?[0.5; 1]
v_3
これはMathOverflowに適していますか?
python - ヘッドレスサーバーでGLU(OpenGL)を実行できますか?
ヘッドレスのGNU/LinuxサーバーでGLUのテッセレーション関数を使用しようとしています。そのためにPyOpenGLを使用したいのですが、問題はgluNewTessの呼び出しでクラッシュすることです(セグメンテーション違反)
gdb backtraceは、それがglGetErrorにあると言っています。これにより、GLUテッセレーションにはGLコンテキストが必要だと思いますか?それとも、PyOpenGLの複雑さだけですか?
ヘッドレス(および仮想化)マシンでGLコンテキストを初期化する方法に関する情報を見つけようとしましたが、運が悪かったです。これらのトピックに関する情報をいただければ幸いです。
c - 三角測量アルゴリズム
ポリゴンを三角形のセットに分割して、簡単なデモを作成することにしました。これが私がこれまでに得たものです:
ポリゴンエッジを形成するシーケンシャル頂点リスト(P1)が与えられます(ほとんどの場合、ポリゴンは凸面ではありません)。三角形のセットが必要です
ポリゴンP1内のすべての頂点をループして、次の節を満たす1つの頂点(v)を見つけます。
ポリゴンからvを削除し、新しい頂点をP2に保存します。前の頂点をvに保存し、次の頂点に接続して、P2エッジのいずれとも交差しない線を形成します。
vはP2内にありません
これらが満たされている場合は、P1を(P2 +三角形(prev(v)、v、next(v)) )に置き換え、P1に3つを超える頂点が含まれるまでこのアクションを繰り返すことができます。
したがって、質問は次のとおりです。このアルゴリズムは正しいのか、そして最も明白で単純な方法を使用してC / C ++を使用してどのように実装できるのか?
c - GTSを使用した制約付きドロネー三角形分割でのアサーションの失敗
GNU Triangulated Surface Libraryを使用して制約付きDelaunay三角形分割を実行すると、断続的なアサーションエラーが発生します。私はさまざまな時期に次のそれぞれを見てきました:
Gts:ERROR:cdt.c:974:remove_intersected_vertex:コードに到達しないでくださいGts:ERROR:cdt.c:896:remove_intersected_edge:アサーションに失敗しました:(次へ)Gts:ERROR:cdt.c:887:remove_intersected_edge:アサーションに失敗しました: (o2 == 0。)
私はcdt.cを見てきましたが、私が理解できたのは、それらがgts_delaunay_add_constraintへの呼び出しから来ているということだけです。
誰かが制約の問題が何であるかを説明できますか?それはこれらのアサーションを失敗させる原因になりますか?
ランダムな頂点のセットで三角測量を実行しようとすると、アサーションの失敗が発生します。残念ながら、これは多数の頂点と制約に対してのみ発生するため、失敗した入力のパターンを理解するのは困難です。GTSを使用しているコードは、入力が正しくない場合でもクラッシュしないようにする必要があるため、これらのアサーションの失敗を防ぐと便利です。そうしないと、アサーションを無効にする必要があります。
編集:交差するすべての制約(に格納されているedges
)を削除しようとしました:
それでも同じアサーションの失敗が発生します。
matlab - matlab:三角形分割ポイントセット
ポイントセット(つまり、頂点の3XN配列)が与えられた場合、matlabを使用してそれを三角形分割するにはどうすればよいですか?ポイントセットがオブジェクトの表面を表し、ノイズが含まれていないと仮定します。
編集:選択した答えは、メッシュの四面体を作成する方法を提供します。私は三角測量を探していました。凸包の私の特定のケースでは、凸包(convhulln
回答のコメントで示唆されているように使用)で十分でした。