MATLAB:用Delaunay从点云生成曲面
在MATLAB中,我加载以下点云:MATLAB:用Delaunay从点云生成曲面,matlab,triangulation,delaunay,Matlab,Triangulation,Delaunay,在MATLAB中,我加载以下点云: load tetmesh 这会将X和tet加载到工作区中。因此,我执行散点图,结果如下: scatter3(X(:,1), X(:,2), X(:,3)) 我还以以下方式调用了trisurf,它为我提供了: trisurf(tet, X(:,1), X(:,2), X(:,3)) 如果我不使用tet,并尝试使用Delaunay建立自己的连接列表: tri = delaunay(X(:,1), X(:,2), X(:,3)) trisurf(tri,
load tetmesh
这会将X
和tet
加载到工作区中。因此,我执行散点图,结果如下:
scatter3(X(:,1), X(:,2), X(:,3))
我还以以下方式调用了trisurf
,它为我提供了:
trisurf(tet, X(:,1), X(:,2), X(:,3))
如果我不使用tet
,并尝试使用Delaunay建立自己的连接列表:
tri = delaunay(X(:,1), X(:,2), X(:,3))
trisurf(tri, X(:,1), X(:,2), X(:,3))
我明白了:
这与使用tet
生成的图像并不接近。据我所知,生成的四面体也不符合Delaunay准则
我的问题是:是否有可能仅从
X
生成一个连接列表,如tet
?点集的Delaunay三角剖分保证按定义填充其凸包。因此,显示的输出与预期完全一致。此外,细分中的所有元素都将满足
给定一组点重构曲面的过程称为曲面重构。这样的问题通常不适定,对于给定的点集,通常可能进行各种非唯一重建。已经开发了许多启发式方法,在这方面,这样的包可能对您有用。尝试:
load tetmesh
coeff = 1;
tri = triangulation(boundary(X, coeff), X);
trisurf(tri); colormap(jet);
coeff
的三个不同值如下所示:
比较
tet
和tri
。连接列表中是否存在任何差异?它们之间的顺序是否不同?