【问题标题】:Cannot get a closed triangulation of points in NetTopologySuite无法在 NetTopologySuite 中获得点的闭合三角剖分
【发布时间】:2018-06-28 18:05:36
【问题描述】:

我正在使用NetTopologySuite 1.14 版并使用它来计算一组点的Triangulation。更具体地说:

我想要一个 3D Delaunay triangulation 的 3D 空间中的一组点,它也是 封闭(最终的网格必须是封闭的:一个船体)。

我的尝试

按照我链接的 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)

生成三角剖分时如何获得闭合网格?

【问题讨论】:

    标签: c# .net geometry nettopologysuite


    【解决方案1】:

    此问题已在 NTS 在 GitHub 上的官方存储库中回复 here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-19
      • 2019-09-28
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      • 2021-05-27
      • 2013-05-29
      • 2018-06-30
      相关资源
      最近更新 更多