Contenido principal

delaunayTriangulation

Triangulación de Delaunay 2D y 3D

Descripción

Utilice el objeto delaunayTriangulation para crear una triangulación de Delaunay 2D o 3D a partir de un conjunto de puntos. Para datos 2D, también puede especificar restricciones de bordes.

Puede realizar una variedad de consultas topológicas y geométricas en delaunayTriangulation, incluyendo cualquier consulta de un objeto triangulation. Por ejemplo, localizar una faceta que contenga un punto específico, encontrar los vértices de la envolvente convexa o calcular el diagrama de Voronoi.

Creación

Para crear un objeto delaunayTriangulation, utilice la función delaunayTriangulation con argumentos de entrada que definan los puntos y los bordes restringidos de la triangulación.

Descripción

DT = delaunayTriangulation(P) crea una triangulación de Delaunay a partir de los puntos de P. La matriz P tiene 2 o 3 columnas, dependiendo de si los puntos están en un espacio 2D o 3D.

ejemplo

DT = delaunayTriangulation(P,C) especifica las restricciones de bordes de la matriz C para los puntos 2D en P. Cada fila de C define los ID de vértice inicial y final de un borde restringido. Los ID de vértice son los números de los correspondientes vértices en la propiedad DT.Points.

DT = delaunayTriangulation(x,y) crea una triangulación de Delaunay 2D a partir de las coordenadas de puntos de los vectores columna x e y.

DT = delaunayTriangulation(x,y,C) especifica las restricciones de bordes en una matriz C.

DT = delaunayTriangulation(x,y,z) crea una triangulación de Delaunay 3D a partir de las coordenadas de puntos de los vectores columna x, y y z.

ejemplo

DT = delaunayTriangulation() crea una triangulación de Delaunay vacía.

Argumentos de entrada

expandir todo

Puntos, especificados como una matriz cuyas columnas son las coordenadas x, las coordenadas y y (posiblemente) las coordenadas z de los puntos de triangulación. Los números de fila de P son los ID de vértice en la triangulación.

Coordenadas x de los puntos de triangulación, especificadas como un vector columna.

Coordenadas y de los puntos de triangulación, especificadas como un vector columna.

Coordenadas z de los puntos de triangulación, especificadas como un vector columna.

ID de vértices de bordes restringidos, especificados como una matriz de dos columnas. Cada fila de C corresponde a un borde restringido y contiene dos ID:

  • C(j,1) es el ID del vértice al inicio de un borde.

  • C(j,2) es el ID del vértice al final del borde.

Solo puede especificar restricciones de bordes para triangulaciones 2D.

Propiedades

expandir todo

Puntos de la triangulación, representados como matriz con las siguientes características:

  • Cada fila en DT.Points contiene las coordenadas de un vértice.

  • Cada número de fila de DT.Points es un ID de vértice.

Lista de conectividad de triangulación, representada como una matriz con las siguientes características:

  • Cada elemento de DT.ConnectivityList es un ID de vértice.

  • Cada fila representa un triángulo o tetraedro en la triangulación.

  • Cada número de fila de DT.ConnectivityList es un ID de triángulo o tetraedro.

Bordes restringidos, representados como matriz de dos columnas de ID de vértices. Cada fila de DT.Constraints corresponde a un borde restringido y contiene dos ID:

  • DT.Constraints(j,1) es el ID del vértice al inicio de un borde.

  • DT.Constraints(j,2) es el ID del vértice al final del borde.

DT.Constraints es una matriz vacía cuando la triangulación no tiene bordes restringidos.

Funciones del objeto

convexHullConvex hull of Delaunay triangulation
isInterior Query points inside Delaunay triangulation
voronoiDiagramVoronoi diagram of Delaunay triangulation
barycentricToCartesianConvert coordinates from barycentric to Cartesian
cartesianToBarycentricConvert coordinates from Cartesian to barycentric
circumcenterCircumcenter of triangle or tetrahedron
edgeAttachmentsTriangles or tetrahedra attached to specified edge
edgesTriangulation edges
faceNormalTriangulation unit normal vectors
featureEdgesSharp edges of surface triangulation
freeBoundaryFree boundary facets
incenterIncenter of triangulation elements
isConnectedTest if two vertices are connected by an edge
nearestNeighborVertex closest to specified point
neighborsTriangle or tetrahedron neighbors
pointLocationTriangle or tetrahedron enclosing point
sizeSize of triangulation connectivity list
vertexAttachmentsTriangles or tetrahedra attached to vertex
vertexNormalTriangulation vertex normal

Ejemplos

contraer todo

Cree un objeto delaunayTriangulation 2D para 30 puntos aleatorios.

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

              Points: [30×2 double]
    ConnectivityList: [48×3 double]
         Constraints: []

Calcule los puntos centrales de cada triángulo y represente la triangulación con los puntos centrales.

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. One or more of the lines displays its values using only markers

Cree un objeto delaunayTriangulation 3D para 30 puntos aleatorios.

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

              Points: [30×3 double]
    ConnectivityList: [102×4 double]
         Constraints: []

Represente la triangulación.

tetramesh(DT,'FaceAlpha',0.3);

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

Calcule y represente la envolvente convexa de la triangulación.

[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.

Más acerca de

expandir todo

Sugerencias

  • delaunayTriangulation puede producir resultados incorrectos o inconsistentes cuando las restricciones de límites se cruzan o se solapan. Para evitar este comportamiento, utilice restricciones que formen uno o varios límites cerrados que no se crucen ni se solapen.

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido en R2013a