【GAMES101】三维旋转矩阵中绕三个轴旋转的矩阵公式
GAMES101网课中设计到的小推导,其实一点也不难,只不过老师讲的概念比较绕,导致比较难记,所以在此记录下比较方便记忆的思路。
首先给出结果公式:
根据之前的二维的旋转矩阵(利用勾股定理和合角公式推导而得):
我们会发现三维旋转中绕Z轴和X轴的旋转矩阵与二维的旋转矩阵类似。
以绕x轴为例,写成直观的形式就是:
y=cosα*y-sinα*z
z=sinα*y+cosα*z
也就是向-x轴方向看,在y0z这个平面上绕原点完成α角度的逆时针旋转,这就是将三维问题转换为二维
但是唯独绕y轴时矩阵有些不一样,是为什么呢? 其实这跟坐标轴间的正交关系有关:
根据定义,我们默认旋转是绕原点逆时针,而叉乘结果是根据右手定则来决定,这也就是为什么x叉乘y得到z:
那么同样的,绕y轴旋转时就向-y轴方向看,在z0x这个平面上绕原点完成α角度的逆时针旋转
根据前面,y叉乘z得x,绕x轴的旋转公式是:
y=cosα*y-sinα*z
z=sinα*y+cosα*z
自然,z叉乘x得y,所以绕y轴的旋转公式就是按顺序将z、x代入绕x轴的旋转公式:
z=cosα*z-sinα*x
x=sinα*z+cosα*x
写成矩阵就是:
所以最后结论:
之所以绕三轴旋转的矩阵公式和三轴间的叉乘有关系,是因为首先我们要把三维转换为二维问题,这过程涉及到对第三轴方向的规定(比如绕x轴时,就要向-x轴方向看,在y0z这个平面上绕原点完成α角度的逆时针旋转),而第三轴的方向是由二维平面上的两轴的叉乘决定的,所以代入公式的时候顺序不能乱
【GAMES101】三维旋转矩阵中绕三个轴旋转的矩阵公式相关推荐
- matlab中如何转动三维图_MATLAB小技巧之:绕任意空间轴旋转三维图形
x=1:0.1:10; y=sin(x); c=cosd(15); s=sind(15); X=x*c-y*s; Y=x*s+y*c; plot(x,y) hold on plot(X,Y) 这就是新 ...
- osgEarth在斜面内绕自身Z轴旋转的锥体
添加斜面描述变量 为了指定斜面的倾斜角度,需要添加一些描述角度的变量,此处为了简化,只添加了俯仰角(及绕物体x轴旋转的角度).代码如下: double pitch = osg::PI * 30 / 1 ...
- 三维空间中曲线绕任意轴旋转所得的旋转曲面求法
三维空间中曲线绕任意轴旋转所得的旋转曲面求法 对2023汤家凤考研高等数学讲义225页2.三维空间直线旋转曲面的解释和推广 ©️ sylvanding
- 旋转——绕原点二维旋转,绕任意点的二维旋转,三维基本旋转,绕任意轴的三维旋转
1 简介 计算机图形学中的应用非常广泛的变换是一种称为仿射变换的特殊变换,在仿射变换中的基本变换包括平移.旋转.缩放.剪切这几种.本文以及接下来的几篇文章重点介绍一下关于旋转的变换,包括二维旋转变换. ...
- 三维旋转矩阵 左乘和右乘分析
突然发现自己被旋转矩阵的左乘右乘给搞糊涂了,查了不少博客还是有点晕,这里自己总结一下: 本文所讨论均是基于右手坐标系,旋转也是以正方向旋转,如图所示: 左乘: 坐标系不动,点动,则左乘.[若绕静坐标系 ...
- D3D绕任意轴旋转推导过程及结论
D3D绕任意轴旋转推导及结论 By czg1989 date:2012-4-24 其实之前一直是记下公式的,今天看书的时候就推导了一下 首先假定任意旋转轴穿过原点,如果不穿过,通过平移就可以搞定.记 ...
- 物体绕任意向量的旋转——四元数法、旋转矩阵法、欧拉角法的比较
3D空间中的旋转可用旋转矩阵.欧拉角或四元数等形式来表示,他们不过都是数学工具,其中在绕任意向量的旋转方面,旋转矩阵和四元数两种工具用的较多,欧拉角由于存在万向节死锁等问题,使用存在限制. (本文假设 ...
- MATLAB 绕轴旋转图像函数 rotate 详解
介绍 以指定原点和方向旋转图像对象. 语法 rotate(h,direction,alpha) rotate 函数在三维空间中旋转图形对象. rotate(h,direction,alpha) 将图形 ...
- 机器人学——姿态描述方法(欧拉角,固定角,D-H法,绕定轴旋转)
文章目录 绕坐标轴旋转 欧拉角 固定角 D-H变换矩阵 绕定轴旋转 绕坐标轴旋转 刚体绕X,Y,Z轴旋转θ角的公式 R X ( θ ) = [ 1 0 0 0 cos θ − sin θ 0 ...
- open3d显示pcd点云并读取任意点的坐标+生成点云绕任意轴旋转的transformation matrix
为了对点云进行旋转操作,达到各点云之间不对齐的效果,找到了生成点云绕任意轴旋转的矩阵的代码. 链接: https://blog.csdn.net/u010848251/article/details/ ...
最新文章
- 数字身份的一些应用和方案
- 润乾报表列太多导致渲染速度慢_报表自动化: 如何选择可视化大屏开发利器
- VTK:Utilities之SaveSceneToFile
- UDP穿透NAT原理解析
- ajax和spa的区别,在XX团上消费过一次不正规的Spa,现在过来两个月公安局打电话叫我过去...
- php安装扩展写kafca,安装PHP的kafka扩展
- TFS(Visual Studio Team Services) / Azure Devops git认证失败 authentication fails 的解决方案 http协议
- TortoiseSVN 命令 (命令行执行工具)
- Adobe Flex初记
- android播放vp8透明,Androids 使用MediaCodec在TV端播放不了视频
- AWSome Day简介
- 我在美团Android研发岗工作的那5年,终局之战
- Unity 相机的移动旋转以及拉近拉远的原理
- Origin双Y轴图形画法,添加图例,合并图例
- Linux上github提示Permission denied (publickey),如何才能解决?
- mysql多字段联合搜索和concat带来的问题
- ElementUI table实现复杂表格
- 思科c220 m3服务器准系统,HP DL380G9服务器准系统 P440AR+电池
- firefox浏览器的onblur事件
- Windows2003性能的优化方法