delaunayTriangulation

Триангуляция Делоне в 2D и 3-D

Описание

Используйте delaunayTriangulation объект создать 2D или 3-D Триангуляцию Делоне из набора точек. Для 2D данных можно также задать ограничения ребра.

Можно выполнить множество топологических и геометрических запросов на delaunayTriangulation, включая любой triangulation запрос. Например, найдите фасет, который содержит отдельный момент, найдите вершины выпуклой оболочки или вычислите Диаграмму Вороного.

Создание

Создать delaunayTriangulation объект, используйте delaunayTriangulation функция с входными параметрами, которые задают точки триангуляции и ограниченные ребра.

Описание

пример

DT = delaunayTriangulation(P) создает Триангуляцию Делоне из точек в P. Матричный P имеет 2 или 3 столбца, в зависимости от того, являются ли ваши точки в 2D или трехмерном пространстве.

DT = delaunayTriangulation(P,C) задает ограничения ребра в матричном C для 2D точек в P. Каждая строка C задает идентификаторы вершины начала и конца ограниченного ребра. Идентификаторы вершины являются номерами строк соответствующих вершин в свойстве DT.Points.

DT = delaunayTriangulation(x,y) создает 2D Триангуляцию Делоне из координат точки в вектор-столбцах x и y.

DT = delaunayTriangulation(x,y,C) задает ограничения ребра в матричном C.

пример

DT = delaunayTriangulation(x,y,z) создает 3-D Триангуляцию Делоне из координат точки в вектор-столбцах xY, и z.

DT = delaunayTriangulation() создает пустую Триангуляцию Делоне.

Входные параметры

развернуть все

Точки в виде матрицы, столбцами которой является x - координаты, y - координаты, и (возможно) z- координаты точек триангуляции. Номера строк P идентификаторы вершины в триангуляции.

x- триангуляции указывают в виде вектор-столбца.

y- триангуляции указывают в виде вектор-столбца.

z- триангуляции указывают в виде вектор-столбца.

Идентификаторы вершины ограниченных ребер в виде матрицы с 2 столбцами. Каждая строка C соответствует ограниченному ребру и содержит два идентификатора:

  • C(j,1) ID вершины в начале ребра.

  • C(j,2) ID вершины в конце ребра.

Можно задать ограничения ребра для 2D триангуляций только.

Свойства

развернуть все

Точки в триангуляции, представленной как матрица следующими характеристиками:

  • Каждая строка в DT.Points содержит координаты вершины.

  • Каждый номер строки DT.Points ID вершины.

Список возможностей соединения триангуляции, представленный как матрица следующими характеристиками:

  • Каждый элемент в DT.ConnectivityList ID вершины.

  • Каждая строка представляет треугольник или четырехгранник в триангуляции.

  • Каждый номер строки DT.ConnectivityList ID четырехгранника или треугольник.

Ограниченные ребра, представленные как матрица с 2 столбцами идентификаторов вершины. Каждая строка DT.Constraints соответствует ограниченному ребру и содержит два идентификатора:

  • DT.Constraints(j,1) ID вершины в начале ребра.

  • DT.Constraints(j,2) ID вершины в конце ребра.

DT.Constraints пустая матрица, когда триангуляция не имеет никаких ограниченных ребер.

Функции объекта

convexHullВыпуклая оболочка Триангуляции Делоне
isInterior Точки запроса в Триангуляции Делоне
voronoiDiagramДиаграмма Вороного Триангуляции Делоне
barycentricToCartesianПреобразуйте координаты от барицентрического до Декартова
cartesianToBarycentricПреобразуйте координаты от Декартова до барицентрического
circumcenterЦентр описанной окружности треугольника или четырехгранника
edgeAttachmentsТреугольники или тетраэдры, присоединенные к заданному ребру
edgesРебра триангуляции
faceNormalМодульные векторы нормали триангуляции
featureEdgesРезкий край поверхностной триангуляции
freeBoundaryСвободные граничные фасеты
incenterЦентр вписанной окружности элементов триангуляции
isConnectedПротестируйте, если две вершины соединяются ребром
nearestNeighborВершина, самая близкая к заданной точке
neighborsТреугольник или соседи четырехгранника
pointLocationТреугольник или точка включения четырехгранника
sizeРазмер списка возможностей соединения триангуляции
vertexAttachmentsТреугольники или тетраэдры, присоединенные к вершине
vertexNormalНормаль вершин триангуляции

Примеры

свернуть все

Создайте 2D delaunayTriangulation объект для 30 случайных точек.

rng default;
P = rand([30 2]);
DT = delaunayTriangulation(P)
DT = 
  delaunayTriangulation with properties:

              Points: [30x2 double]
    ConnectivityList: [48x3 double]
         Constraints: []

Вычислите центральные точки каждого треугольника и постройте триангуляцию с центральными точками.

IC = incenter(DT);
triplot(DT)
hold on
plot(IC(:,1),IC(:,2),'*r')

Figure contains an axes. The axes contains 2 objects of type line.

Создайте 3-D delaunayTriangulation объект для 30 случайных точек.

rng default;
x = rand([30 1]);
y = rand([30 1]);
z = rand([30 1]);
DT = delaunayTriangulation(x,y,z)
DT = 
  delaunayTriangulation with properties:

              Points: [30x3 double]
    ConnectivityList: [102x4 double]
         Constraints: []

Постройте триангуляцию.

tetramesh(DT,'FaceAlpha',0.3);

Figure contains an axes. The axes contains 102 objects of type patch.

Вычислите и постройте выпуклую оболочку триангуляции.

[K,v] = convexHull(DT);
trisurf(K,DT.Points(:,1),DT.Points(:,2),DT.Points(:,3))

Figure contains an axes. The axes contains an object of type patch.

Больше о

развернуть все

Советы

  • delaunayTriangulation может привести к неправильным или противоречивым результатам, когда граничные ограничения пересекаются или перекрываются. Чтобы избежать этого поведения, используйте ограничения, которые формируют один или несколько закрытых контуров, которые не пересекаются или перекрываются.

Введенный в R2013a
Для просмотра документации необходимо авторизоваться на сайте