|
楼主 |
发表于 2010-9-2 11:07:18
|
显示全部楼层
本帖最后由 yin_savage 于 2010-9-2 11:12 编辑
我的旋转角度是有其取值范围的,比如附图中的R1和R2两个旋转角度只可能在-180~180度之间。有了这种取值约束,很多问题可以简化了。 最终其实我已经解决了问题,使用三角函数互换,代码还是很简单的:
const Vec3 vec1(cos(fltR1), sin(fltR1), 0.0f);
const Vec3 vec2(vec1.x * cos(fltR2), vec1.y * cos(fltR2), sin(fltR2));
const float fltCosAngle = vec1 * vec2;
const float fltAngle = acos(fltCosAngle);
return fltAngle;
上述代码初步测试也没有发现什么问题。 |
|