Matlab 求Delaunay三角剖分的合成三角形面积

Matlab 求Delaunay三角剖分的合成三角形面积,matlab,area,triangulation,delaunay,Matlab,Area,Triangulation,Delaunay,应用delaunay三角剖分后,是否有可能找到形成的每个三角形的面积?matlab中有什么函数可以实现吗?请澄清。提前感谢这可以通过-注意使用dim选项来完成 tri = delaunay(x,y); areas = polyarea(tri(x),tri(y),2); 我也面临着同样的疑问,但谢天谢地,我能够破解它,试试这个: tri = delaunay(x,y); areas = polyarea(x(tri'),y(tri'),2); 这将为您提供形成的每个三角形的面积 如果你发现任

应用delaunay三角剖分后,是否有可能找到形成的每个三角形的面积?matlab中有什么函数可以实现吗?请澄清。提前感谢

这可以通过-注意使用
dim
选项来完成

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

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

tri = delaunay(x,y);
areas = polyarea(x(tri'),y(tri'),2);
这将为您提供形成的每个三角形的面积

如果你发现任何困难,一定要告诉我


注:
tri'
表示矩阵的转置。

此解决方案有效,但没有矢量化

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

你可以自己写。检查的输出。它提供了点的索引。然后你可以计算出三条边并使用公式。。。你的回答是…但我有160个三角形。我需要找到所有三角形的面积。。。我无法用上面的代码得到答案嗨,我想知道为什么会是这样,在你的例子中,向量面积将是160*1向量。如果需要,可以在工作区中查看相同的内容。最后,向量的索引将与tri的索引相同。如果需要,请随时询问更多:)只是为了澄清。。。所有三角形的面积是指每个三角形的面积还是所有三角形面积之和?