2016-03-24 26 views
0

project_xyの特性を使用して3D点から作成された2D Constrained Delaunay Triangulationと3D線を交差させるにはどうすればよいですか?rayとdelaunayの三角形分割の交差

cgal-discuss postでは、多くのクエリを実行する必要がある場合は、ツリーを使用してコメントします。私はそれほど多くはないと思っていますが、そのうち約200個はあります。しかし、私は多くのポイント、> 200億を持っているかもしれません。

彼らはまた、別のアプローチをコメント

第3の選択肢は、あなたが通過する細胞を回収する他のエンドポイントに向けて歩いて三角測量では、エンドポイントと を見つけることです。

しかし、私たちがどのように三角測量を横断したかをテストすることはできません。私の場合、三角形分割されたメッシュは、平面に近い地形のモデルです。つまり、ほとんどの場合、1つの交差点のみが存在し、必要に応じて光線をセグメントとして結びつけることができます。

木を作る価値はありますか?他にどのようなアプローチをとることができますか?すべての顔を反復することは非常に非効率的であるようです。

いくつかのコンテキストを与えるために私が持っているいくつかのtypedef、:

typedef CGAL::Exact_predicates_inexact_constructions_kernel K; 
typedef CGAL::Projection_traits_xy_3<K> Gt; 
typedef K::Point_3 Point3; 

typedef CGAL::Triangulation_vertex_base_2<Gt> Vb; 
typedef CGAL::Delaunay_mesh_face_base_2<Gt> Fb; 
typedef CGAL::Triangulation_data_structure_2<Vb, Fb> Tds; 
typedef CGAL::Constrained_Delaunay_triangulation_2<Gt, Tds> CDT; 

答えて

0

あなたは光線が通過する2内のすべてのセルを取得するにはline_walk()機能を使用することができます。次に、セグメントTriangle do_intersect()関数を使用して、3Dでフィルタリングするだけで済みます。

関連する問題