30.1 Delaunay三角剖分

Delaunay三角剖分是从一组循环圆构成的。选择这些圆是为了在圆的圆周上至少有三个点要进行三角函数。点集中没有一个点落在任何一个圆内。

一般来说,一个圆的圆周上只有三个点。然而,在某些情况下,特别是对于规则网格的情况,4个或多个点可以在一个圆上。在这种情况下,Delaunay三角剖分并不是唯一的。

 
: tri = delaunay (x, y)
: tetr = delaunay (x, y, z)
: tri = delaunay (x)
: tri = delaunay (…, options)

计算二维或三维点集的Delaunay三角剖分。

对于二维集,返回值tri是一组满足Delaunay圆标准的三角形,即没有来自[x, y]在定义三角形的圆周内。三角形的集合tri是大小为[n,3]的矩阵。每一行定义一个三角形,三列是三角形的三个顶点。的值tri(i,j)是的索引xy用于第i个三角形的第j个顶点的位置。

对于三维集,返回值tetr是一组四面体,它满足Delaunay圆标准,即没有来自的数据点[x, y, z]在定义四面体的圆周内。四面体的集合是一个大小为[n,4]的矩阵。每行定义一个四面体,四列是四面体的四个顶点。的值tetr(i,j)是的索引x,y, z对于第i个四面体的第j个顶点的位置。

输入x也可以是具有两列或三列的矩阵,其中第一列包含x数据,第二列包含y数据,并且可选的第三列包含z数据。

可选的最终参数必须是字符串或字符串的元胞数组,其中包含传递给基础qhull命令的参数。有关详细信息,详见Qhull库的文档http://www.qhull.org/html/qh-quick.htm#options。默认参数为{"Qt", "Qbb", "Qc"}如果二维输入的Qhull失败,则使用参数再次尝试三角函数{"Qt", "Qbb", "Qc", "Qz"}这可能导致精度下降。

如果options不存在或[]则使用默认参数。否则options替换默认参数列表。要将用户参数附加到默认值,有必要重复中的默认参数options。使用空字符串不传递任何参数。

x = rand (1, 10);
y = rand (1, 10);
tri = delaunay (x, y);
triplot (tri, x, y);
hold on;
plot (x, y, "r*");
axis ([0,1,0,1]);

详见: delaunayn, convhull, voronoi, triplot, trimesh, tetramesh, trisurf.

广告

对于三维输入delaunay返回一组满足Delaunay圆标准的四面体。类似地,delaunayn返回满足Delaunay圆标准的N维单纯形。三角函数的N维扩展称为镶嵌。

 
: T = delaunayn (pts)
: T = delaunayn (pts, options)

计算N维点集的Delaunay三角剖分。

Delaunay三角剖分是一组点的凸包的镶嵌,这样从N个三角形定义的N球体就不包含该集中的任何其他点。

输入矩阵pts尺寸为[n,dim]的空间在尺寸为dim的空间中包含n个点。返回矩阵T大小为[m,dim+1]。每行T包含一组返回到原始点集中的索引pts其描述维度dim的单纯形。例如,二维simplex是三角形,3-D单纯形是四面体。

可选的第二个参数必须是字符串或字符串的元胞数组,其中包含传递给基础qhull命令的参数。有关详细信息,详见Qhull库的文档http://www.qhull.org/html/qh-quick.htm#options。默认参数取决于输入的尺寸:

如果二维输入的Qhull失败,则使用参数再次尝试三角函数{"Qt", "Qbb", "Qc", "Qz"}这可能导致精度下降。

如果options不存在或[]则使用默认参数。否则options替换默认参数列表。要将用户参数附加到默认值,有必要重复中的默认参数options。使用空字符串不传递任何参数。

详见: delaunay, convhulln, voronoin, trimesh, tetramesh.

广告

一组点的Delaunay三角剖分的一个例子是

rand ("state", 1);
x = rand (1, 10);
y = rand (1, 10);
T = delaunay (x, y);
X = [ x(T(:,1)); x(T(:,2)); x(T(:,3)); x(T(:,1)) ];
Y = [ y(T(:,1)); y(T(:,2)); y(T(:,3)); y(T(:,1)) ];
axis ([0, 1, 0, 1]);
plot (X, Y, "b", x, y, "r*");

其结果可以在中看到图30.1.

delaunay

图30.1:随机点集的Delaunay三角剖分


版权所有 © 2024-2025 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2