1

我想在 MATLAB 中使用二维的 delaunay 函数生成三角形网格。所以我声明了 X- 和 Y- 值并设置 tri=delaunay(X,Y)。然后我使用 triplot 来绘制它。然而,tri 给了我什么?它会给我的每个三角形一个特殊的编号吗?在阅读了一些 MATLAB 教程后,我仍然不明白。

4

1 回答 1

1

delaunay函数以三角形连通性矩阵的形式返回triMx3其中每个M三角形都表示为一个整数三元组,该整数三元组索引到X,Y顶点位置数组。

一个简单的例子可能更容易:

%% a simple square box
X = [0.0; 1.0; 1.0; 0.0];
Y = [0.0; 0.0; 1.0; 1.0];

%% an example output from delaunay()
tri = [1,2,3  %% 1st triangle connects vertices 1,2,3
       1,3,4  %% 2nd triangle connects vertices 1,3,4
      ];

三角形只是线性编号 -tri(1,:)是第一个三角形,tri(n,:)是第 n 个三角形等。如果你想重新排序 traingles 列表,你可以置换数组,但索引总是必须是线性的 - 如果有M三角形索引必须包含1:M.

希望这可以帮助。

于 2012-03-20T00:18:15.383 回答