我想在 MATLAB 中使用二维的 delaunay 函数生成三角形网格。所以我声明了 X- 和 Y- 值并设置 tri=delaunay(X,Y)。然后我使用 triplot 来绘制它。然而,tri 给了我什么?它会给我的每个三角形一个特殊的编号吗?在阅读了一些 MATLAB 教程后,我仍然不明白。
问问题
915 次
1 回答
1
该delaunay
函数以三角形连通性矩阵的形式返回tri
,Mx3
其中每个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 回答