查找Delaunay三角剖分的生成三角形区域

时间:2014-02-23 06:36:09

标签: matlab area triangulation delaunay

应用delaunay三角剖分后,是否可以找到形成的每个三角形的面积?在matlab中有任何功能吗?请澄清我。提前谢谢

3 个答案:

答案 0 :(得分:1)

我面临着同样的疑问,但谢天谢地,我能够破解它,试试这个:

tri = delaunay(x,y);
areas = polyarea(x(tri'),y(tri'),2);

这将为您提供形成的每个三角形的区域。

如果您发现任何困难,请告诉我。

P.S:tri'表示矩阵的转置。

答案 1 :(得分:0)

可以使用polyarea完成此操作 - 请注意使用dim选项。

tri = delaunay(x,y);
areas = polyarea(tri(x),tri(y),2);

答案 2 :(得分:0)

此解决方案有效,但未进行矢量化。

DT = delaunayTriangulation(X,Y);

NTriangles = size(DT.ConnectivityList,1);

% Triangles' Area Calculation (Try to vectorize)
Areas = zeros(NTriangles,1);
for i = 1:NTriangles
    PointIndexes = DT.ConnectivityList(i,:);
    Areas(i) = polyarea(DT.Points(PointIndexes,1),DT.Points(PointIndexes,2));
end