matlab中计算三角形面积?在X,Y矩阵中存有一组点的x,y坐标:X=[5 7 2 8 7 4 3 6 9] ,Y=[4 5 9 3 6 5 3 2 8]矩阵B中保存了每三个点构成的一个三角形,B=[6 1 57 1 67 6 36 5 31 7 85 9 32 8 42 1 85 2 95 1 22 4 9]如何编写函
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/30 08:02:14
matlab中计算三角形面积?在X,Y矩阵中存有一组点的x,y坐标:X=[5 7 2 8 7 4 3 6 9] ,Y=[4 5 9 3 6 5 3 2 8]矩阵B中保存了每三个点构成的一个三角形,B=[6 1 57 1 67 6 36 5 31 7 85 9 32 8 42 1 85 2 95 1 22 4 9]如何编写函
matlab中计算三角形面积?
在X,Y矩阵中存有一组点的x,y坐标:
X=[5 7 2 8 7 4 3 6 9] ,Y=[4 5 9 3 6 5 3 2 8]
矩阵B中保存了每三个点构成的一个三角形,
B=[6 1 5
7 1 6
7 6 3
6 5 3
1 7 8
5 9 3
2 8 4
2 1 8
5 2 9
5 1 2
2 4 9]
如何编写函数让我用B里面的点号读取A里面的坐标,然后利用海伦公式求三角形的面积?
我的代码目前写成这样:
for i=1:size(B,1)
j=B(i,1); k=B(i,2); l=B(i,3);
zb1x=X(j);zb1y=Y(j); zb2x=X(k);zb2y=Y(k); zb3x=X(l);zb3y=Y(l);
bc1=sqrt((X(j)-X(k))*(X(j)-X(k))+(Y(j)-Y(k))*(Y(j)-Y(k)));
bc2=sqrt((X(j)-X(l))*(X(j)-X(l))+(Y(j)-Y(l))*(Y(j)-Y(l)));
bc3=sqrt((X(l)-X(k))*(X(l)-X(k))+(Y(l)-Y(k))*(Y(l)-Y(k)));
p=(bc1+bc2+bc3)/2;
s=sqrt(p*(p-bc1)*(p-bc2)*(p-bc3));
end
结果只能输出一个三角形的面积.初学matlab献丑了.请各位大神帮我看看需要改进的地方,感激不尽~
matlab中计算三角形面积?在X,Y矩阵中存有一组点的x,y坐标:X=[5 7 2 8 7 4 3 6 9] ,Y=[4 5 9 3 6 5 3 2 8]矩阵B中保存了每三个点构成的一个三角形,B=[6 1 57 1 67 6 36 5 31 7 85 9 32 8 42 1 85 2 95 1 22 4 9]如何编写函
改成 s(i)=sqrt(p*(p-bc1)*(p-bc2)*(p-bc3)); 让矩阵存储结果