这个基本上就是抄的,对于局部空间到世界空间的来回转换其实挺糊涂,直观来说,只要求出一个,再求个逆,书上的做法名字比较好听罢了.真心觉得作者最好拿我当傻子,把最直观的东西呈现在我面前.否则,挺好的,我得自己去搞明白.
#ifndef ROTATIONMATRIX_H_
#define ROTATIONMATRIX_H_
class Vector3 ;
class EulerAngles ;
class Quaternion ;
class RotationMatrix
{
public:
float m11, m12, m13 ;
float m21, m22, m23 ;
float m31, m32, m33 ;
void Identity() ;
// 根据指定方位构造矩阵
void SetUp(const EulerAngles& orientation) ;
// 根据四元数构造矩阵
// 惯性空间->局部空间
void FromInertialToObjectQuaternion(const Quaternion& q) ;
// 局部空间->惯性空间
void FromObjectToInertialQuaternion(const Quaternion& q) ;
// 执行旋转
Vector3 InertialToObject(const Vector3& v) const ;
Vector3 ObjectToInertial(const Vector3& v) const ;
} ;
#endif
本文探讨了三维空间中从局部空间到世界空间的转换原理,并通过实例介绍如何使用旋转矩阵进行转换。文章还提供了旋转矩阵类的具体实现,包括根据四元数和欧拉角构造矩阵的方法。
2511

被折叠的 条评论
为什么被折叠?



