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 object. The axes object 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 object. The axes object 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 object. The axes object contains an object of type patch.

Больше о

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

Советы

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

Расширенные возможности

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