关于两个向量求夹角的问题 很实用
www.dimcax.com
关于两个向量求夹角的问题 很实用
假设有向量a,向量b,现在我想得到从向量a顺时针旋转到向量b的角度。 注意是顺时针.
在arx中有一个
angleto(const acgevector3d& vec) const;
的函数,可以得到两个向量在0……pai之间的夹角。(据说也能得到0……2pai之间的角,但是怎么得到,没弄明白,!)
我用图片说明下我的问题,
但是如果夹角大于pai时怎么处理呢?
下面这几行代码解决这个问题:
if ((a.crossproduct(b)).z <= 0.0)
{
vecangle=a.angleto(b);
}
else
{
vecangle=2*pai-a.angleto(b);
}
我解释下:
如果a和b的点积向量是向下的(a,b均在水平面上)
说明a和b顺时针夹角是0……pai
否则是pai……2pai
至于为什么涉及到矩阵知识,就不解释了。
支持楼主,
好,本站论坛上很缺这些实用的小东东
很想知道double angleto(
const acgevector3d& vec,
const acgevector3d& refvec) const;
这个函数里面的refvec这个怎么用
呵呵, 很有新意, 帮楼主顶!
impossible is nothing