无法在NetTopologySuite中获得封闭的三角测量点?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (100)

我正在使用NetTopologySuite版本1.14并使用它来计算一组点的三角测量。进一步来说:

我想要3D空间中的一组点的3D Delaunay三角剖分也是关闭的(最终网格必须是关闭的:船体)。

我的尝试

按照我链接的API,我编写了这个简单的程序:

var builder = new NTS.Triangulate.ConformingDelaunayTriangulationBuilder();

builder.SetSites(new NTS.Geometries.MultiPoint(new[] { // A (square) pyramid
    new NTS.Geometries.Point(0, 0, 0),
    new NTS.Geometries.Point(2, 0, 0),
    new NTS.Geometries.Point(0, 2, 0),
    new NTS.Geometries.Point(2, 2, 0),
    new NTS.Geometries.Point(1, 1, 2)
}));

var triangles = builder.GetTriangles(new NTS.Geometries.GeometryFactory());
Console.WriteLine("Triangles: " + triangles.ToString());

返回:

(0 2 0, 0 0 0, 1 1 2, 0 2 0), 
(0 2 0, 1 1 2, 2 2 0, 0 2 0), 
(2 2 0, 1 1 2, 2 0 0, 2 2 0), 
(0 0 0, 2 0 0, 1 1 2, 0 0 0)

打开网格

这是正确的,但它只生成了4个面(三角形)。我期待6个三角形(通过添加2个三角形应该包括金字塔的底部)。我基本上得到一个开放的网格。我期待这两个额外的三角形:

(0 0 0, 2 0 0, 0 2 0, 0 0 0),
(0 2 0, 2 0 0, 2 2 0, 0 2 0)

如何在生成三角测量时获得闭合网格?

提问于
用户回答回答于

这个问题已经得到了回答。在这里NTS关于GitHub的官方报告中。

扫码关注云+社区

领取腾讯云代金券