![]() |
【转帖】关于两个向量求夹角的问题 很实用
关于两个向量求夹角的问题 很实用
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 |
所有的时间均为北京时间。 现在的时间是 01:12 PM. |