Lookat旋转问题
铜戈 2003-12-23 05:15:31 现有一个Node, 想让他面向某一个点, 怎样快速的计算出它的旋转矩阵(或者四元数)
1. 这个node可能是个子节点, 所以需要将目标点变换到改Node空间内, 或者将node变换到世界空间然后乘父的逆.
2. 这个节点可能有一个up方向, 或者没有, 也就是说, 如果有up方向, 旋转后该Node的up方向不变(和旋转之前一样). 如果没有up方向, 那么up方向是旋转后的up方向(是不是没说清楚)
我的想法如下(还没有时间去实现):
根据该Node的当前方向和目标方向可以求出旋转轴(叉积), 然后用点积求出旋转角, 然后构造旋转矩阵或者四元数
但是这个方法需要求叉积和反三角函数,有没有更好的办法?
各位有什么方法都请指点一二.
多谢!