三维空间中的旋转变换

66 篇文章 0 订阅
30 篇文章 1 订阅

1、绕坐标轴旋转的公式:

      (1)绕Z轴旋转

 

      (2)绕X轴旋转

 

      (3)绕Y轴旋转

   

     以上的矩阵变换公式为 : P' = P * mat;

 2、绕任意轴旋转的公式:

      给定具有单位长的则物体绕OA轴旋转变换的矩阵表示可确定如下:

 

3、绕任意轴旋转在Ogre中实现

Ogre::Matrix3 I = Ogre::Matrix3::IDENTITY;
Ogre::Matrix3 A = I, B = I, M = I;

// (x,y,z) 是任意轴旋转到坐标原点的方向向量
A[0][0] = x * x;	A[0][1] = x * y;	A[0][2] = x * z;
A[1][0] = y * x;	A[1][1] = y * y;	A[1][2] = y * z;
A[2][0] = z * x;	A[2][1] = z * y;	A[2][2] = z * z;
B[0][0] =  0;		B[0][1] = -z;		B[0][2] = y;
B[1][0] =  z;		B[1][1] =  0;		B[1][2] = -x;
B[2][0] = -y;		B[2][1] =  x;		B[2][2] =  0;

M = A + (I - A) * Ogre::Math::Cos(angle) + B * Ogre::Math::Sin(angle);
M = M.Transpose();

// Trans is translate matrix
Ogre:: Matrix4 result = Trans.inverse() * Ogre::Matrix4(M) * Trans; 

4、Ogre中实现注意的问题

      上述公式中的矩阵式按行表示的,而Ogre中的矩阵是按列表示的,因此最终的公式需要变化一下,即

     

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值