【发布时间】:2019-09-13 04:39:55
【问题描述】:
我需要在两条或多条 3d 轮廓线之间生成三角网格。等高线只是一个点数组,并且总是闭合的。
我尝试使用 Poly2Tri 库进行 delaunay 三角剖分,但效果不佳,因为它只适用于 2d,虽然我可以让它在 3d 中工作,但它不能处理垂直堆叠的轮廓线(即:丢弃第 3 维时具有相同的坐标)
有谁知道哪种算法最适合使用,最好是我可以从 c# 应用程序中使用的现有库?
【问题讨论】:
-
您可以使用 R 脚本(参见 r-project.org/about.html)并从 C# 应用程序控制脚本的执行(参见 stackoverflow.com/questions/4485943/…)。我自己不会那样做,但如果你想要一个学习 R 的理由......
-
您的数据结构是否允许您使用以两条相邻轮廓线为界的条带?如果是,您可以逐条对表面条进行三角测量。另请参阅
https://en.wikipedia.org/wiki/Triangle_strip -
@HEKTO,我可以肯定地使用三条带,但这并没有定义生成合理镶嵌所需的索引的算法。
-
这里的“指数”到底是什么?
-
@HEKTO 我不知道如何回答。我指的是生成的网格的三角形索引。给定这些轮廓线作为输入,我需要构建一个网格。问题是,使用什么算法来定义网格。网格是定义三角形的位置集合和索引集合。鉴于我已经有了等高线的位置,算法唯一需要输出的就是索引的集合。
标签: c# computational-geometry mesh surface triangulation