1

次のような三角形の頂点(ポリゴンの面)の配列があります

[[[a, b, c], [d, e, f], [g, h, i]], ...]

2 つの 3D 頂点で表される線分があります[[j, k, l], [m, n, o]]

そして、私にはポイントがあり[p, q, r]ます。

私がやりたいことは、線分を通してポリゴン上のポイントを投影し、それがポリゴンを完全にスライスするかどうかを確認することです(4つの接触点で十分だと思いますか?私は間違っている可能性があります)。もしそうなら、エッジと頂点にあるすべての交点が必要です。

私はここで完全に迷っています。任意のポインタをいただければ幸いです。

4

1 に答える 1

1

一般性を失うことなく、点と線分(以下、T)によって形成される三角形がxy平面にあると仮定できます。(それ以外の場合は、すべてを適切に回転させます)。

三角形の面をループします。y座標の符号が異なる面の頂点のペア(つまり、xy平面を切断するエッジ)について、エッジとxy平面の交点をチェックし、それが次のようになっていることを確認します。 T内。

このようなすべてのチェックが真である場合に限り、Tは「ポリゴンを完全にスライスする」と見なされます。

実行時間はO(number of faces)です。

説明されているすべての操作は非常に簡単です。たとえば、何かがTの境界内にあることを確認することは、Tを定義する2つの線の方程式(つまり、線分の点から端点まで)を使用して2つの不等式を確認することです。

エッジ(したがって頂点)を持つすべてのPOIは、ループ内で計算できます。これは、単にxy平面を持つエッジのPOIです。

于 2012-07-22T07:32:54.203 に答える