旋转矩阵推导

2023-11-13

一、前言: 
周而复始的搜索、循环往复的记忆,但终究还是不深刻,不能像老师一样交给一个新人,所谓提纲挈领,名师指导还是相当有必要的,因为所有的坎,名师都遇到过,而且总结了自己的一套方法论。这样才能够言简意赅,才能够让一个什么都不懂(有点夸张),略等一些技术背景的人,很容易的就能够理解并且掌握。闲言少叙,下面来看下矩阵变换中的旋转矩阵的推导是怎么推导出来的。本文并不涉及为什么使用四维矩阵表示三维向量的旋转,这些知识将在后面的文章中一一涉及,有兴趣的或者锱铢必较(这里作褒义会意)的读者请关注博主接下来的学习历程。 
二、推导过程 
2.1二维向量的旋转 
这里写图片描述

2.2三维向量的旋转 
二维扩展到三维,其实还是蛮简单的,我们不妨将上面的图,再修改下,就可以得到如下图: 
这里写图片描述 
正如你看到的,添加了一个+z,就变成了三维空间了。上面将OP顺时针绕着z轴旋转了θ角度。这里我们要注意两点: 
(1)我们站在xy平面,朝着z轴的正方向看,我们挥舞着手臂,从OP转动θ角度到达了OP’,这里是顺时针沿着z轴旋转了θ角度。 
(2)搞清楚坐标系是左手坐标系还是右手坐标系,为什么要搞清楚这个呢?因为为了接下来的同理推导,哈哈为了省事。

2.3如何确定是左手坐标系,还是右手坐标系。 
这个问题,我的习惯是用手指模拟。伸出一只手,大拇指是x轴正方向、食指是y轴正方向、中指是z轴正方向。哪只手这样做之后能和坐标轴重合,那只手就是左/右坐标系。如下图所示,可以确定此坐标系为左手坐标系: 
这里写图片描述

2.4绕z轴旋转θ角度的矩阵表示 
这里写图片描述 
好事之徒,这里就会问,哎?这里z’经过矩阵变换之后,z轴结果没有变化,对呀为啥没有变化呢?你觉得会有变化吗?可以这么理解。 
这里写图片描述 
我们绕着z轴旋转,其实即使向量的在圆锥体上的移动,但是投射到z上的坐标是固定长度的,也可看出,绕某个轴旋转,其实这个点或者是向量的某轴坐标不变。例如,绕x轴旋转,则x轴的坐标不变;绕y轴旋转,y轴坐标不变;绕z轴旋转则z轴不变。

2.5绕x轴、y轴旋转θ角度的矩阵表示 
我们此时要做的就是转换坐标轴的位置,使其和我们上面的绕z轴推导进行硬套公式即可。如下所示,我们首先,记住首先,就是讲x轴方针原来z轴的位置。 
这里写图片描述 
此时到底是(一)还是(二)呢?回顾我们之前写的一句话,就是该坐标系是左手坐标系还是右手坐标系。经过验证(一)是左手坐标系;(二)是右手坐标系。又因为我们之前的坐标系是左手坐标系,所以这里选择(一)。 
ok此时,我们有了坐标系,我们只要把对应的变量替换上去即可。如下图所示: 
这里写图片描述
推导如下: 
这里写图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

旋转矩阵推导 的相关文章

  • 如何保障数仓数据质量?

    有赞数据报表中心为商家提供了丰富的数据指标 包括30 页面 100 数据报表以及400 不同类型的数据指标 它们帮助商家更合理 科学地运营店铺 同时也直接提供分析决策方法供商家使用 并且 每天在跑的底层任务和涉及的数据表已经达到千级别 面对
  • 【Python 1-10】Python手把手教程之——一篇讲透if语句以及if语句的特殊用法

    作者 弗拉德 来源 弗拉德 公众号 fulade me if 简单示例 假设你有一个汽车列表 并想将其中每辆汽车的名称打印出来 对于大多数汽车 都应以首字母大写的方式打印其名称 但对于汽车名 bmw 应以全大写的方式打印 下面的代码遍历一个
  • 技术至简-7:2G/3G/4G/5G基站系统中混合调制的技术框架

    2G 3G 4G 5G基站系统并非采用单一的调制技术 是数字调制和模拟调制的综合 是QAM调制与IQ调制的综合 是幅度调制与相位调制的综合 1 调制模型 在此模型中 包含了三种调制 1 数字基带调制 PSK QAM调制 2 模拟基带调制 I
  • Git日常问题: 什么是LFS?及其错误解决办法

    文章目录 Git LFS 错误 Git LFS 解决办法 Git LFS 错误 本地已经存在一个git仓库 想将其推送到一个远程仓库 结果遇到了git lfs错误 打印如下 git remote rename origin old orig
  • 解决DCNv2在Linux上安装失败的问题

    项目场景 今天同学安装 DCN Deformable Convolutional Networks 可变形卷积网络 v2的 PyTorch 版本时遇到了很多问题 弄了将近一天也没解决 于是求助笔者帮忙解决 这里记录一下成功的解决方案 问题描

随机推荐

  • MATLAB算法实战应用案例精讲-【回归算法】XGBoost算法(附Java、Python和R语言代码)

    目录 前言 xgboost面试过程中几个高频问题 1 xgboost如何处理缺失值
  • 什么是JDBC?并写出JDBC的开发流程。

    JDBC Java DataBase Connectivity 直译为 java数据库连接 实际上jdbc是java中的一套和数据库交互的api application program interface 应用程序编程接口 因为java程序
  • 【uni-app】修改原生导航栏文字和文字样式

    修改文字 uni setNavigationBarTitle 这是修改后的导航栏文字 title 首页 修改文字颜色以及导航栏背景色 uni setNavigationBarColor frontColor ffffff 文字颜色 back
  • SystemVerilog-$cast详解

    cast在子类与父类之间的复制 1 子类cast给父类 cast father cls child cls 之前有提到 cast是将两个类型强制转换 cast A B 将B强制类型转换给A 应用在类上 就是句柄的强制赋值操作 那么在子类和父
  • Global Illumination_Screen-Space Directional Occlusion(SSDO)

    之前我们了解过AO SSAO HBAO 可参照之前文章Vulkan SSAO 屏幕空间环境光遮蔽 DirectX11进阶9 AO SSAO Particle System GPU Global Illumination Horizon Ba
  • 常用椭圆曲线介绍

    chat gpt生成 对应python的miracl core python库 ED系列 一 ED25519 ED25519使用的椭圆曲线是Curve25519 它是一种高效且安全的椭圆曲线 由Daniel J Bernstein等人设计
  • 游戏渲染技术:前向渲染 vs 延迟渲染 vs Forward+渲染(二)

    GTA5 2 前向渲染 前向渲染是三个光照技术中最简单的 也是游戏图形渲染中最常见的技术 出于这个原因 也是光照计算最昂贵的技术 它不允许在场景中出现大量的动态光源 大部分使用前向渲染的图形引擎会采用一些技术来模拟场景中大量的光源的情况 例
  • 区间预测

    区间预测 MATLAB实现QRCNN BiLSTM卷积双向长短期记忆神经网络分位数回归时间序列区间预测 目录 区间预测 MATLAB实现QRCNN BiLSTM卷积双向长短期记忆神经网络分位数回归时间序列区间预测 效果一览 基本介绍 模型描
  • php比较两个二维数组是否相同,多维数组

    欢迎加入 新群号码 99640845 几天前跟同事讨论一个很有趣的问题 一直想写下来结果总没有时间 今天终于有时间了 如题 php如何比较两个二维数组是否相同 这个问题我在群里也问了很多人 大多数就是遍历了 有的人遍历一次 有的人遍历两次
  • 微信Banner广告位置设置

    在微信中banner广告的调用 并没有在微信官方文档中解释得比较明白 也没有简单明了的示例 所以我们在这里讨论一下banner广告的实现 微信中的banner广告的位置属性只有 left top 意味着只有左对齐和上对齐 而且 微信中的这个
  • 3D模型学会了「唱、跳、Rap、篮球」,程序员们全沉迷「鸡你太美」

    继 B 站之后 GitHub 网友也开始沉迷 鸡你太美 让 3D 姿态也学会了 唱 跳 Rap 篮球 而且动作准确度和连贯性似乎一点也不输练习时长两年半的练习生 看了这段 demo 之后 网友戏称 你的律师函已经在路上了 这段 看到停不下来
  • 万字解析GPT的情感与意识,它是一只被人类操控的“风筝”

    来源 AI未来指北 编辑整理 周小燕 郭晓静 AI未来指北 栏目由腾讯新闻推出 邀约全球业内专家 创业者 投资人 探讨AI领域的技术发展 商业模式 应用场景 伦理及版权争议 丨划重点 一部分基础工作可能会被AI产品替代 然而 创意工作 管理
  • Webpack打包-打包详细流程

    Webpack Webpack是一个现代化的静态模块打包器 支持JavaScript CSS 图片等资源的打包 它将所有模块及其依赖项视为静态资源 并创建一个依赖关系图 将这些资源转换为有效的输出文件 通过Webpack 可以将多个文件打包
  • HTTP 304 错误的详细解释

    Not Modified 客户端有缓冲的文档并发出了一个条件性的请求 一般是提供If Modified Since头表示客户只想比指定日期更新的文档 服务器告诉客户 原来缓冲的文档还可以继续使用 如果客户端在请求一个文件的时候 发现自己缓存
  • 【深度学习实验】前馈神经网络(三):自定义多层感知机(激活函数logistic、线性层算Linear)

    目录 一 实验介绍 二 实验环境 1 配置虚拟环境 2 库版本介绍 三 实验内容 0 导入必要的工具包 1 构建数据集 2 激活函数logistic 3 线性层算子 Linear 4 两层的前馈神经网络MLP 5 模型训练 一 实验介绍 本
  • 文章:LIME:Why Should I Trust You?

    本文结合文章 Why Should I Trust You Explaining the Predictions of Any Classifier 主要阐述一下内容 LIME 算法意义 LIME 算法原理 LIME 算法效果 原文参见 h
  • 【Python实训】Python实现多级菜单

    menu 北京 海淀 五道口 soho 网易 google 中关村 爱奇艺 汽车之家 youku 上地 百度
  • 二叉树的建立与遍历详解 菜鸟都能看懂的教程

    树形结构要多利用递归来求解 递归的关键就是想清楚所有的基准情形 然后扩展到一般情况 写代码的时候最好把基准情况放在前面 把一般情况放在后面 定义二叉树结构体 typedef struct BinaryTreeNode TelemType d
  • 前端获取后端的BigDecimal类型字段数值,丢失精度处理

    1 问题 前端请求后端接口获取BigDecimal类型字段数值时丢失精度 例如 5999 00变成5999 5999 50变成5999 5 2 解决方法 在字段上添加 JsonFormat shape JsonFormat Shape ST
  • 旋转矩阵推导

    一 前言 周而复始的搜索 循环往复的记忆 但终究还是不深刻 不能像老师一样交给一个新人 所谓提纲挈领 名师指导还是相当有必要的 因为所有的坎 名师都遇到过 而且总结了自己的一套方法论 这样才能够言简意赅 才能够让一个什么都不懂 有点夸张 略