【发布时间】:2018-12-22 08:11:08
【问题描述】:
我正在使用CGAL 来计算一组点的 3D 三角剖分:
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Delaunay_triangulation_3<K> CGALTriangulation;
typedef CGALTriangulation::Point Point;
// Construction from a list of points
std::list<Point> points;
points.push_front(Point(0, 0, 0));
points.push_front(Point(2, 0, 0));
points.push_front(Point(0, 2, 0));
points.push_front(Point(2, 2, 0));
points.push_front(Point(1, 1, 1));
// Perform triangulation
CGALTriangulation T(points.begin(), points.end());
访问三角形(面)
我需要在 Unity 中创建一个网格,所以我使用 CGAL,因为它有很多算法可以处理这个复杂的问题。问题是在 API 中很难找到一种方法来访问构成三角剖分的不同三角形(以及它们的顶点)我还没有找到一种方法:(强>
注意请注意,仅访问顶点对我来说是不够的:
for (CGALTriangulation::Finite_vertices_iterator it = T.finite_vertices_begin();
it != T.finite_vertices_end();
it++)
{
CGALTriangulation::Triangulation_data_structure::Vertex v = *it;
// Do something with the vertex
}
因为我没有得到任何关于每个顶点属于哪个面(三角形)的信息。而三角形正是我所需要的!
如何访问三角剖分的三角形(面)?如何从每个 facet 中取出顶点?
【问题讨论】:
-
如果你不解释拒绝投票或提议关闭的原因,我应该如何解决这个问题?
-
似乎人们抱怨问题不清楚。我已经编辑了,希望它更好。如果不清楚,请不要只投票支持关闭,请在评论中稍微处理一下,以便我采取行动解决它
标签: c++ unity3d cgal triangulation delaunay