триангуляция Делоне

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

Описание

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

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

Создание

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

Синтаксис

DT = delaunayTriangulation(P)
DT = delaunayTriangulation(P,C)
DT = delaunayTriangulation(x,y)
DT = delaunayTriangulation(x,y,C)
DT = delaunayTriangulation(x,y,z)
DT = delaunayTriangulation()

Описание

пример

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

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 Триангуляцию Делоне из координат точки в вектор-столбцах x, y и 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 случайных точек.

P = gallery('uniformdata',[30 2],0);
DT = delaunayTriangulation(P)
DT = 
  delaunayTriangulation with properties:

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

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

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

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

x = gallery('uniformdata',[30 1],0);
y = gallery('uniformdata',[30 1],1);
z = gallery('uniformdata',[30 1],2);
DT = delaunayTriangulation(x,y,z)
DT = 
  delaunayTriangulation with properties:

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

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

tetramesh(DT,'FaceAlpha',0.3);

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

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

Больше о

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

Введенный в R2013a