作业帮 > 综合 > 作业

matlab中计算三角形面积?

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/09 13:48:48
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中计算三角形面积?
改成 s(i)=sqrt(p*(p-bc1)*(p-bc2)*(p-bc3)); 让矩阵存储结果
再问: 改了一下s的维数就对了,我的计算方法还有错吗?麻烦你帮我看一下。。谢谢!
再答: 海伦公式 如果你是参照这个算法写的。。。应该不会有错误。。。