未测试,所以,BBBB的话留给以后.未测试的原因,是深度优先我有点受不了了,先把欧拉角,矩阵,四元数都写出来,再整合到我的线框引擎中测试吧.
参考的书籍是<<3D游戏基础--图形与游戏开发>>和<<3D游戏与计算机图形学中的数学方法>>,都是外国人写的书.
关于这个EulerAngles啊,看起来没什么,真要研究透彻,真的不是那么容易的...还好我睾明白了,贴出来吧.
#ifndef EULAR_H_ #define EULAR_H_ class Quaternion ; class Matrix4x4; class EulerAngles { public: // 单位:弧度 float heading ; float pitch ; float bank ; EulerAngles() ; EulerAngles(float heading, float pitch, float bank) ; void Indentity() ; void Canonize() ; // 矩阵到欧拉角 void MatrixToEulerAngles(const Matrix4x4& m) ; // 四元数到欧拉角 void QuaternionToEulerAngles(const Quaternion& q) ; } ; #endif