问题描述:
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献丑了.请各位大神帮我看看需要改进的地方,感激不尽~
1个回答
分类:
综合
2014-10-04
问题解答:
我来补答
改成 s(i)=sqrt(p*(p-bc1)*(p-bc2)*(p-bc3)); 让矩阵存储结果
再问: 改了一下s的维数就对了,我的计算方法还有错吗?麻烦你帮我看一下。。谢谢!
再答: 海伦公式 如果你是参照这个算法写的。。。应该不会有错误。。。
展开全文阅读
今天的文章matlab编写程序求三角形面积_matlab求一元二次方程的解分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/58517.html