Не удается получить закрытую триангуляцию точек в NetTopologySuite

Я использую NetTopologySuite версии 1.14 и играю с ней, чтобы вычислить триангуляцию для набора точек. Более конкретно:

Мне нужна трехмерная триангуляция Делоне для набора точек в трехмерном пространстве, которое также закрыто (конечная сетка должна быть закрыта: оболочка).

Моя попытка

Следуя 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 треугольников). Я получаю открытую сетку в принципе. Я ожидал эти 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)

Как получить замкнутую сетку при генерации триангуляции?

1 ответ

Решение

На этот вопрос вы можете найти ответ в официальном репортаже NTS на GitHub.

Другие вопросы по тегам