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