以前发表过一个关于计算向量之间夹角的文章
http://blog.csdn.net/happy__888/archive/2005/04/28/367008.aspx
有个网友提出疑问, 当N和a以及b向量不垂直的情况下, 计算方法是错误的
这个问题非常的好
尽管问题本身,和描述的提供的方法的前提违背---方法首先在前提的时候已经说明了N是a和b的公共法向量,那么N必然是同时垂直a和b的
在实际的应用当中,确实存在一种旋转状况---转轴N和a和b都不垂直
这种现象很常见: 向量a围绕向量N,旋转到达了b的位置,让我们计算这个转角是多少, 此时a和N之间没有必然的关系 ,不是必须垂直的,当然,b也不是必须垂直于N的; (这种情况下a和b是模是相等的,既等长的)
我的上一篇文章当中描述的方法,a和b可以是模不相等的
当然,实际情况上,对于不等长的这种类似的夹角计算情况也有---计算两个向量在某个平面上的投影的夹角,而这个平面的法向量实际上就是N了,N是垂直于两个向量,在改平面上的投影的
在未知N的情况下,可以回归成为计算几何的一个经典问题, 从一个旋转加缩放矩阵当中提取转轴,转角,以及缩放比例的问题, 这个是有固定的解法的,瞒复杂的
可是我们本来的这个问题很简单啊, 计算哪个角度而已啊
还是用哪个atan2的算法,用a*b/|a|*|b| 求acos也可,计算就可以得到角度,无非是不知道旋转的正负而已;围绕任意转轴的旋转公式也都是现成的,构造出矩阵尝试一下结果就知道了
也许有很好的解法, 现在比较忙,没有时间细想了。
发表于 @ 2008年03月05日 19:47:00|评论(loading...)|编辑