前言

仔细一想,已经一年多没有更新博客了(真是怠惰!!),最近在做我之前研究方向内容的归档,发现自己总是会混淆左右手坐标系和旋转矩阵在图片上的对应关系。因此,秉持着好记性不如烂笔头的原则,我还是先记录下来吧。

正文

旋转矩阵
Matrix=[cosθ−sinθsinθcosθ]Matrix = \left[ \begin{array}{cc} cos\theta&-sin\theta\\ sin\theta&cos\theta \end{array} \right] Matrix=[cosθsinθ​−sinθcosθ​]
上述旋转矩阵,在大家通常的认知下应该是逆时针旋转矩阵,即如果存在点pt=(1,0)pt=(1, 0)pt=(1,0),且假设旋转角度为45的话,那么最后矩阵相乘最终结果应该为:
Matrix=[cosπ4−sinπ4sinπ4cosπ4]∗[10]=[0.7070.707]Matrix = \left[ \begin{array}{cc} cos\frac{\pi}{4}&-sin\frac{\pi}{4}\\ sin\frac{\pi}{4}&cos\frac{\pi}{4} \end{array} \right] * \left[ \begin{array}{c} 1 \\ 0 \end{array} \right]=\left[ \begin{array}{c} 0.707 \\ 0.707 \end{array} \right] Matrix=[cos4π​sin4π​​−sin4π​cos4π​​]∗[10​]=[0.7070.707​]

要点一


如上图所示,在右手坐标系中本该逆时针旋转的点,现在左手坐标系中变为了顺时针旋转,但是最终表示的数值结果都是相同的。所以在左手坐标系下,矩阵的旋转方向与右手坐标系相反。

要点二

乘积的表现形式(在右手坐标系下,只通过乘积,让其预期落点符合左手坐标系),在这里介绍两种方法
标准的旋转矩阵乘法,都是旋转矩阵 x 点的列向量
方法一:将旋转矩阵的右乘列向量,改为左乘行向量,即点的行向量 x 旋转矩阵
Matrix=[10]∗[cosπ4−sinπ4sinπ4cosπ4]=[0.707−0.707]Matrix = [1 \quad 0]* \left[ \begin{array}{cc} cos\frac{\pi}{4}&-sin\frac{\pi}{4}\\ sin\frac{\pi}{4}&cos\frac{\pi}{4} \end{array} \right] =\left[ \begin{array}{c} 0.707 \\ -0.707 \end{array} \right] Matrix=[10]∗[cos4π​sin4π​​−sin4π​cos4π​​]=[0.707−0.707​]
方法二:右乘点的列向量但是,x与y交换位置
Matrix=[cosπ4−sinπ4sinπ4cosπ4]∗[01]=[−0.7070.707]=[yx]Matrix = \left[ \begin{array}{cc} cos\frac{\pi}{4}&-sin\frac{\pi}{4}\\ sin\frac{\pi}{4}&cos\frac{\pi}{4} \end{array} \right]* \left[ \begin{array}{c} 0 \\ 1 \end{array} \right]=\left[ \begin{array}{c} -0.707 \\ 0.707 \end{array} \right]=\left[ \begin{array}{c} y \\ x \end{array} \right] Matrix=[cos4π​sin4π​​−sin4π​cos4π​​]∗[01​]=[−0.7070.707​]=[yx​]
以上两种方法可以让预期落点在右手坐标系的情况下,符合左手坐标系的预期。

要点三

较为简单的一点,旋转矩阵左乘行向量得到的旋转方向与右乘列向量得到的旋转方向相反。

结尾

以上便是坐标转换的一些小技巧,如有错误,欢迎指正。

平面左右手坐标系与旋转矩阵的碎碎念相关推荐

  1. 三重积分先二后一和先一后二的碎碎念

    提到三重积分,伴随着的常常是这两种积分的策略.你看因为是三重,所以可以拆分成不均匀的两部分,二重积分里怎么拆都是先一后一对吧~ 本篇文章的起因是我自以为这两个概念分的蛮清晰了,但是今天却把先一后二与截 ...

  2. 让人懵圈的左右手坐标系及Unity中的叉积

    左右手坐标系大拇指方向的意义挺懵的. 来自:http://blog.csdn.net/dcrmg/article/details/53088463 这里当作坐标方向用的时候,大拇指方向指向x轴正方向, ...

  3. 前端碎碎念 之 nextTick, setTimeout 以及 setImmediate 三者的执行顺序

    『前端碎碎念』系列会记录我平时看书或者看文章遇到的问题,一般都是比较基础但是容易遗忘的知识点,你也可能会在面试中碰到. 我会查阅一些资料并可能加上自己的理解,来记录这些问题.更多文章请前往我的个人博客 ...

  4. 参加海峡两岸城市地理信息系统论坛2010 年会(一张图、规划信息化和空间句法的碎碎念)...

    上周末去清华建筑学院开了个会,叫做海峡两岸城市地理信息系统论坛2010 年会,主题很大,但是内容比较集中一些,就是围绕着GIS与城市规划.一天下来听了20个报告,挺佩服主办方的时间控制,这么密集的报告 ...

  5. Jerry的碎碎念:SAPUI5, Angular, React和Vue

    2019独角兽企业重金招聘Python工程师标准>>> 去年我去一个国内客户现场时,曾经和他们IT部门的一位架构师聊到关于在SAP平台上进行UI应用的二次开发时,UI框架是选用UI5 ...

  6. cd返回上一 git_PHP项目中应用CI/CD的碎碎恋!

    点击上方"架构艺术",每日干货! 作者:晶晶 原文链接:https://blog.jjonline.cn/linux/239.html DevOps漫谈:谈一谈在PHP项目如何应用 ...

  7. PMcaff写给大家的年终碎碎念 PMcaff | 记录

    今天是大年三十,2014马上就要结束了,送上新春祝福之前,碎碎念的小希有话想跟大家说. 瞧这一年 小米在硬件行业继续如鱼得水,科幻片里的智能家居生慢慢变成生活. 阿里巴巴在纳克达斯扬眉吐气了一把,一夜 ...

  8. 数据结构碎碎念(一)

    碎碎念 在大一学习C语言的时候,举过一个用栈实现的括号匹配算法,当时觉得很难,不过现在回顾起来,这个算法也算是比较简单的一个关于栈的应用了.而现在所常见的算法问题也都是什么中缀表达式转后缀表达式,双栈 ...

  9. 机器学习碎碎念:霍夫丁不等式

    点击上方"AI有道",选择"设为星标" 关键时刻,第一时间送达! 红色石头每天碎碎念一些机器学习知识和概念,大家一起学习,每天进步一点点!喜欢的话别忘了文末点赞 ...

最新文章

  1. 《C#多线程编程实战(原书第2版)》——第3章 使用线程池 3.1 简介
  2. 用python怎样做学生管理系统用类的形式-Python配置管理的几种方式
  3. C++之变量的作用域,生存期,可见性
  4. 牛客多校2 - Interval(网格图最大流转换为对偶图最短路)
  5. 汇编语言之标志寄存器
  6. 2020美国纽约大学计算机科学排名,2020美国纽约大学排名第几
  7. 纽约大学计算机工程专业课程,纽约大学计算机工程硕士专业介绍及课程要求
  8. JAVA中的继承和覆盖
  9. win7 64位系统PS、AI、PSD缩略图预览补丁
  10. IDEA下载并安装SVN教程
  11. 哇嘎显示等待无服务器,vagaa搜索不到资源怎么回事?vagaa哇嘎搜索没反应的解决方法...
  12. php时间序列比对,干货时间|序列比对,科研必备的几款软件!
  13. Echarts formatter综合写法
  14. 联想笔记本电脑u盘重装win10系统教学
  15. matlab解方程组解析解
  16. C#人民币大小写金额转换(C#版本)
  17. VMware中配置NAT方式上网 by.zyw
  18. Java中函数及递归的使用(附思维导图)——java面试知识点
  19. 博科交换机java版本_博科交换机安装与维护手册.doc
  20. 【锐捷无线】隐藏SSID配置

热门文章

  1. 自定义UITableViewCell实现ibooks类似的图书列表形式
  2. 一幅PS作品来表现童真童趣
  3. PBOOTCMS红色教育留学咨询企业网站模板(PC+WAP)
  4. 蒲丰投针计算机模拟ppt,蒙特卡罗模拟课件.ppt
  5. 测量误差与准确度,测量不确定度
  6. OT Extension 基础概念
  7. 西南交通大学算法分析与设计hhy7.4积木搭楼梯: 一个小孩手中有N块正方形的积木,他总是想不同的方法来搭建各种不同的楼梯。他搭建的楼梯必须满足如下条件: 楼梯的每个台阶的砖块数不能相同,且严格递减。
  8. 1. 获取数据-requests.get()
  9. Java中Date数据类型的数值转换
  10. lcds- data management part Unable to access UserTransaction in DataService