矩阵变换:沿任意轴旋转及其推导

来源:http://blog.csdn.net/zsq306650083/article/details/8773996

1. 2D中绕原点旋转

设基向量p,q和r分别是朝向+x,+y和+z方向的单位向量。

旋转角度为θ,基向量p,q绕原点旋转,得到新的基向量p`和q`


即旋转矩阵R(θ)为



2. 3d中绕坐标轴旋转

01. 绕x轴旋转,基向量q和r旋转θ,得到新的基向量q`和r`


即旋转矩阵Rx(θ)为:


02. 绕y轴旋转,基向量p和r旋转θ,得到新的基向量p`和r`


即旋转矩阵Ry(θ)为:


03. 绕z轴旋转,基向量p和q旋转θ,得到新的基向量p`和q`


即旋转矩阵Rz(θ)为:



3. 绕任意轴旋转

这里不考虑平移,所以是过原点的任意轴。

任意轴用单位向量n表示,绕n旋转θ角度的矩阵表示为R(n,θ),v`是向量v绕轴n旋转后的向量

v` = vR(n,θ)

我们的目标是用v,n和θ来表示v`,具体步骤如下:

将v分解为平行于n的分向量v||和垂直于n的分向量v⊥。v`⊥是v`垂直于n的分向量。


01.根据向量投影公式有


02.根据v||算出v⊥,w是v⊥与n叉剩的结果


03.根据w算出v`⊥


04.最后算出v`



05.现在已经得到了v`与v,n和θ的关系公式,用它来计算变换后的基向量并构造矩阵,基向量p`为


06.其余基向量类推,这里纠正上式中列向量的写法


07.合并为矩阵后:



更多内容参见:3d数学基础





 
bgram
  • bgram
    2017-07-10 08:585楼
  • 在“02.根据v||算出v⊥,w是v⊥与n叉剩的结果“中,我认为w写反了。
    根据叉乘的定义,应该是w=v⊥×n。楼主觉得对不对?
bgram
  • bgram
    2017-07-10 08:564楼
  • 在 “02.根据v||算出v⊥,w是v⊥与n叉剩的结果“中
    我认为w写反了。
    根据叉乘的定义,应该是w=v⊥×n。楼主觉得对不对?
qq_26988595
  • qq_26988595
    2015-11-17 09:223楼
  • 请问这一步根据03.根据w算出v`⊥
    是如何得出的?我看原书也没看懂。请教一下
zsq306650083
  • zsq306650083
    2015-11-05 18:232楼
  • 中文名叫《3d数学基础:图形与游戏开发》,英文版名字叫<3D Math Primer for Graphics and Game>,原版已经出到第三版了,中文的貌似只翻译到了第一版。
louisejackie
  • louisejackie
    2014-08-01 19:401楼
    1条回复   回复
  • 楼主您好!仔细研读了您的矩阵变换系列博文,非常受用。想问下您用的是哪本书呢?我下载了你文中链接的“3D数学基础”,没找到相关的讲解啊,求指导,多谢了!
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值