声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2541|回复: 2

[图像处理] 用matlab求三角形角度

[复制链接]
发表于 2009-5-19 19:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我已经求出图像中各边的长度了,但是用反余弦函数求角度,发现求出的结果全是向量形如
a+ib这样的形式,而且值还很大,不在180°以内,各位有没有用好的办法解决?
十万分的谢谢
回复
分享到:

使用道具 举报

发表于 2009-5-20 13:18 | 显示全部楼层
我编了一个函数,可能对你有所帮助
  1. function [triang,triarea]=TriAngleArea(a,b,c)

  2. %给定3边长a,b,c,求3个角度(弧度)和三角形面积
  3. %[triang,triarea]=TriAngleArea(a,b,c)
  4. %triang: 3*1的向量,分别为a,b,c三边所对角的角度
  5. %triarea: 三角形面积
  6. if a+b>c & a+c>b & b+c>a
  7.     p=(a+b+c)/2;
  8.     triarea=sqrt(p*(p-a)*(p-b)*(p-c));
  9.     angA=acos((b^2+c^2-a^2)/(2*b*c));
  10.     angB=acos((a^2+c^2-b^2)/(2*a*c));
  11.     angC=acos((a^2+b^2-c^2)/(2*a*b));
  12.     triang=[angA angB angC];
  13. else
  14.     error('输入的三个数为边长不能构成三角形')
  15. end
复制代码


调用:[x,y]=TriAngleArea(3,4,5)
结果:
x =
    0.6435    0.9273    1.5708
y =
     6

评分

1

查看全部评分

 楼主| 发表于 2009-5-28 21:44 | 显示全部楼层
谢谢,这个问题我自己也弄出来了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-22 12:51 , Processed in 0.062998 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表