计算三点所形成的夹角的三种方法

您所在的位置:网站首页 向量夹角余弦公式推导 计算三点所形成的夹角的三种方法

计算三点所形成的夹角的三种方法

2024-06-25 04:21| 来源: 网络整理| 查看: 265

写图形学算法时经常要用到,整理一下:

第一种方法 ,使用向量计算三个点ABC     AB=(b.x-a.x,   b.y-a.y)     AC=(c.x-a.x,   c.y-a.y)     cosA   =   (AB*AC)/(|AB|*|AC|)     这种方法好像很复杂,首先AB*AC,     |AB|,|AC|需要求两点间的距离  

 

  向量夹角余弦公式法具体举例:         比如已知三点M(1,1),A(2,2),B(2,1)求角度∠AMB     1.先求向量MA,MB     向量公式   MA=(A.x-M.x)i+(B.x-M.x)j     所以:     MA=(2-1,2-1)=(1,1)     MB=(2-1,1-1)=(1,0)     则两向量的数量积为:     MA*MB=1×1+1×0=1     2.求向量的模     向量的模=sqrt(x*x+y*y)     |MA|=√(1×1)+(1×1)=√2     |MB|=√(1*1)+(0*0)=√1     将以上结果带入向量夹角余弦公式得:     cos∠AMB=MA*MB/|MA|*|MB|=√2/2     则∠AMB=45度

 

  C++代码实现之:

 

  求解图:

 

旋转的方向角如何判断呢,使用叉乘计算公式。ma-> X mab-> = (ma.x*mb.y - mb.x*ma.y)(k->)  系数为正即为逆时针,负为顺时针,0共线。

 

第二种方法 ,用余弦定理:     cosA   =   (b*b   +   c*c   -   a*a   )/   2*b*c     其中a,b,c为三点连线所成三角形三边边长,用上面第一种方法使用的求模公式可以求出模,或者用两点间距离公式求出:     d=√(p1.x-p2.x)^2+(p1.y-p2.y)^2。

 

第三种方法 ,其实就是分别求出直线AM,BM的斜率,得到对应的角度,两线角度之差即为夹角,考虑到夹角的方向,顺时钟夹角定为正。

  计算方法代码(未验证):

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3