您的位置:首页 > 其它

点积应用-求两个向量夹角

2016-07-05 13:50 330 查看
之前,由点积求两条直线的夹角,只知道会用,不知道原量,今天看计算机图形学,才知道其原量,待记录如下:

点积最重要的应用时计算两个向量的夹角,或者两条直线的夹角。图给出了二维的情况,其中向量b和向量c与x轴的夹角分别为B,C,从基本三角函数可得:

b = (|b| cosB, |b| sinB)

c = (|c| cosC, |c| sinC)

将上式代入点积等式,将它们的对应的分量相乘,再把结果相加,于是得到:

b.c = |b| |c| cosB cosC + |b| |c| sinB sinC

再次应用三角函数等式,得到

b.c = |b| |c| cos(B-C)

最终,对于任意两个向量b和c,我们有

b.c = |b| |c| cos(@),即con(@) = b.c / (|b| |c|)

注:@为b和c之间的夹角。



其程序实现的例子是:

//求当前四边形各顶点之间的最短距离
for(int i=0;i<4;i++)
{
Point side = approxCurve[i] - approxCurve[(i+1)%4];//这里应该是2维的相减
float squaredSideLength = side.dot(side);//求2维向量的点积,就是XxY
minDist = min(minDist,squaredSideLength);//找出最小的距离
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: