本文主要是介绍OpenCV:已知三角形的两边 求夹角的问题(余弦定理),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
// 找余弦角度: 线段pt0-pt1 和线段 pt0-pt2:
double angle( Point pt1, Point pt2, Point pt0 ) {
double dx1 = pt1.x - pt0.x;
double dy1 = pt1.y - pt0.y; double dx2 = pt2.x - pt0.x;double dy2 = pt2.y - pt0.y;
double ratio; //矩形长和宽平方的比 ratio=(dx1*dx1+dy1*dy1)/(dx2*dx2+dy2*dy2);
if (ratio<0.8 || 1.2<ratio) { //根据矩形长宽平方比淘汰四边形
return 1.0;
}
return (dx1*dx2 + dy1*dy2)/sqrt((dx1*dx1 + dy1*dy1)*(dx2*dx2 + dy2*dy2) + 1e-10);//???
}
已知三角形的两条边求夹角的问题,我记得公式是 cos C=(a^2+b^2-c^2) / (2*a*b)。
那么这句是什么个意思:
return (dx1*dx2 + dy1*dy2)/sqrt((dx1*dx1 + dy1*dy1)*(dx2*dx2 + dy2*dy2) + 1e-10);
注:余弦定理,是描述三角形中三边长度与一个角的余弦值关系的数学定理。勾股定理在一般三角形情形下的推广。
如图,△ABC,余弦定理表示为:
c^2=a^2+b^2--2abcosC。
这篇关于OpenCV:已知三角形的两边 求夹角的问题(余弦定理)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!