Games 101: 旋转矩阵

旋转矩阵

本文主要介绍了旋转矩阵的推导,分为两种方式:

  • 旋转坐标
  • 旋转坐标轴
    以下坐标系都是右手坐标系

旋转坐标

已知坐标点A(xa,ya), 旋转θ角后变为坐标点B(xb,yb),求解旋转矩阵.

xa=racos(α)=rbcos(α)ya=rasin(α)=rbsin(α)xb=rbcos(α+θ)=rbcos(α)cos(θ)rbsin(α)sin(θ)=xacos(θ)yasin(θ)yb=rbsin(α+θ)=rbcos(α)sin(θ)+rbsin(α)cos(θ)=xasin(θ)+yacos(θ)

即:

[xbyb]=[cos(θ)sin(θ)sin(θ)cos(θ)][xaya]

推广到三维以及其他轴,可以得到三维坐标点的旋转矩阵为:

Rx(α)=[1000cos(α)sin(α)0sin(α)cos(α)]Ry(β)=[cos(β)0sin(β)010sin(β)0cos(β)]Rz(θ)=[cos(θ)sin(θ)0sin(θ)cos(θ)0001]

旋转坐标

坐标轴OX1Y1绕z轴旋转θ角后变为坐标轴OX2Y2,点A在坐标轴OX1Y1中坐标为(xa,ya), 在坐标轴OX2Y2(xb,yb),求解旋转矩阵.
坐标轴OX1Y1,两个方向的单位向量为x1,y1,坐标轴OX2Y2,两个方向的单位向量为x2,y2

分解单位向量:

x1=|x1|cos(θ)x2|x1|sin(θ)y2=cos(θ)x2sin(θ)y2y1=|y1|sin(θ)x2+|x1|cos(θ)y2=sin(θ)x2+cos(θ)y2

向量变换:

ra=xax1+yay1=xa(cos(θ)x2sin(θ)y2)+ya(sin(θ)x2+cos(θ)y2)=(xacos(θ)+yasin(θ))x2+(sin(θ)xa+cos(θ)ya)y2ra=xbx2+yby2

[xbyb]=[cos(θ)sin(θ)sin(θ)cos(θ)][xaya]

推广到三维以及其他轴,可以得到三维坐标轴的旋转矩阵为:

Rx(α)=[1000cos(α)sin(α)0sin(α)cos(α)]Ry(β)=[cos(β)0sin(β)010sin(β)0cos(β)]Rz(θ)=[cos(θ)sin(θ)0sin(θ)cos(θ)0001]

posted @   木子七维  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示