matlab三角形面积,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 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的维数就对了,我的计算方法还有错吗?麻烦你帮我看一下。。谢谢!

再答: 海伦公式 如果你是参照这个算法写的。。。应该不会有错误。。。

展开全文阅读

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值