2Dの三角形(辺ではない)内の任意の点を見つけるための最も速い方法が必要です。どんな助け?三角形内の任意の点を見つける最速の方法2D
答えて
あなたの三角形をポイントで表現すると、 Steve Jessopの答えはほぼ最適です。
実際に行う必要があるのは、ある時点から開始し、限られた量の他の2つの方向に向かって起動することだけです。それが平均化が達成するものですが、非常に特殊な方法です。
追加が高速です。プラットフォームとコンパイラによっては、分割が遅くなることがあります。例えば、最近のARMコア上で、私は平均の上に任意の日、このバージョンを選択したい
:
xm = (x0 + (x1 + x2)/2)/2
ym = (y0 + (y1 + y2)/2)/2
を変数は、コンパイラが整数している場合は、正しくスケジュールた場合、ビットシフトに部門を最適化する必要があり、ありますARMではほとんど無料です。変数が浮動小数点または倍精度の場合、コンパイラは単純な指数のデクリメントに最適化する必要があります。浮動小数点の除算は比較的遅いことが知られています。
最終的に、テストして参照してください。比較的低レベルのコード最適化を行っていない限り、違いは見られません。一方、これを内側のループで使用している場合は、可能性があります。
これがなぜ機能するのかについての直感を提供する:最初に、(x1, y1)
と(x2, y2)
によって形成される線分の中点を見つける。次に、によって形成される線分と点と(x0, y0)
との間の中点を見つける。三角形の図を描いてこれを行うと、すぐにこれが機能することが明らかになります。
3つの頂点(重心)の「平均」は、三角形の内側の点であり、おそらく他のどの頂点よりも速く計算されます。
頂点が同一直線上にある縮退したケースの端にしかありません。その場合、三角形内のすべての点が辺にあるので、解決策はありません。
+1。一般に、v1、v2およびv3が頂点である場合、w1 + w2 + w3 = 1,0
または:まず、三角形のサーフェスを計算することができます。 次に、三角形を他の3つの三角形に分ける第2の計算を行います。これら3つのサブ三角形のサーフェスが大きければ、あなたのポイントは三角形の領域外です。私の言いたいことを見て?
頂点A、B、C
ベクトル
AB = BA
AC = CA
P = A + T * AB + U * AC
t、u - 範囲[0..1]の任意の数字(ランダム?)、t + u < = 1
- 1. 直角プリズム(三角形)の最も近い点を見つける方法
- 2. 三角形の最小許容三角形を見つける
- 3. 三角形内の任意の点の位置を取得
- 4. 三角形の角を見つける
- 5. 三角形、正方形、円の下の整数点の数を見つける
- 6. 三角形の頂点を見つける
- 7. 3D空間内の任意の平面上の点の三角形セット
- 8. 任意の2つのノードを含む三角形の数
- 9. 直角三角形と1頂点の2つの辺から未知の頂点を見つける
- 10. 3Dオブジェクトの外形に三角形を見つける
- 11. 三角形の対角を見つけるか?
- 12. 四角形内の等価点を見つける
- 13. 正三角形の3番目の座標を見つける方法は?
- 14. 任意の2次元三角形の走査線の取得
- 15. アルゴリズム設計 - 頂点を共有する三角形のセットを見つけるより良い方法
- 16. コントロールコレクション内のテキストマッチングコントロールを見つける最も速い方法
- 17. バイナリ配列で直角三角形を見つける
- 18. N点を内部に持つ三角形の数
- 19. 点集合から四角形の頂点を見つける
- 20. Sidekiqの任意の場所にジョブを見つける最良の方法
- 21. キーワードを検索する最速の方法。任意の言語、任意のシステム
- 22. Delaunay三角測量のすべての三角形から1つの頂点のみをマークする方法
- 23. フラグメントシェーダの三角形の頂点を推測する方法
- 24. バイナリツリー内の任意の2つのノードの最大の違いを見つける方法
- 25. 三角の領域を見つける
- 26. 線の交点矩形 - 交点を見つける方法?
- 27. 任意の所定の間隔でアレイ内の5つの最大値を見つける効率的方法
- 28. 長方形内のすべての点を見つける?
- 29. 2D内の三角形の円で囲まれたもの
- 30. 穴を持つ最も速い三角形分割アルゴリズム?
あなたは:点A、B、Cと点Dを持つ三角形を与えますか?点Dは三角形A、B、Cの中にありますか?他のすべては簡単です。 – knivil
三角形はどのように表現されていますか?平面上の点、ベクトルのペアなどとして? – Kaganar
Nitpickingですが、*最も速い*方法はおそらくポイントを事前計算し、それを計算する必要はありません。 – Flexo