参考:百度百科-矩阵乘法,转置矩阵,逆矩阵
(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)

TRS矩阵拆解(Translate, Rotate, Scale):

按照Translate, Rotate, Scale顺序复合的矩阵,我们可以对它进行拆解,拆解出原始的Translate, Rotate, Scale矩阵。
下面是拆解得理论过程。

TRS所在分量

矩阵形如:
m00, m01, m02, m03
m10, m11, m12, m12,
m20, m21, m22, m23
m30, m31, m32, m33

Rotate和Scale的分量部分位于:3*3的区域

[m00, m01, m02]
[m10, m11, m12]  = Rotate * Scale
[m20, m21, m22]

Translate的分量部分位于:第4行的前三个部分
m30, m31, m32

Translate矩阵分离

Translate矩阵是最外层矩阵,它直接起作用到Translate分量部分,直接可以分离出来
[1, 0, 0, 0]
[0, 1, 0, 0]
[0, 0, 1, 0]
[m30, m31, m32, 1]

Roate\Scale矩阵分离基础

a. Rotate矩阵的逆矩阵为自身的转置矩阵,
b. Scale矩阵的转置矩阵为自身本身
c. 所以Transpose(Rotate*Scale)= Transpose(Scale) *Transpose(Rotate) = Scale * Inverse(Rotate)
d. 对于逆矩阵而言:A * Inverse(A) = 单位矩阵; 对于矩阵乘法 A * B * C = A * (B * C)
e. 所以Transpose(Roate * Scale) * Rotate * Scale * = Scale * Inserse(Rotate) * Rotate * Scale * = Scale * 单位矩阵 * Scale = Scale * Scale

Scale矩阵分离

基于上面的推理,把3*3矩阵部分进行转制,然后乘原来的矩阵,得出Scale * Scale,而Scale矩阵本身就是只在对角线有值,各值开平方就得出了Scale矩阵

[m00, m10, m20]      [m00, m01, m02]                 [scale(x*x), 0, 0]
[m01, m11, m21] muti [m10, m11, m12] = scale*scale = [0, scale(y*y), 0]
[m02, m12, m22]      [m20, m21, m22]                 [0, 0, scale(z*z)]

Rotate矩阵分离

有了Scale矩阵,就可以简单的得出Scale矩阵的逆矩阵
[1/scale(x), 0, 0]
[0, 1/scale(y), 0]
[0, 0, 1/scale(y)]
有了scale逆矩阵就可以的出Rotate矩阵的逆矩阵
Roate * Scale * Inverse(scale) = Roate

[m00, m01, m02]      [1/scale(x), 0, 0]
[m10, m11, m12] muti [0, 1/scale(y), 0]    = Rotate
[m20, m21, m22]      [0, 0, 1/scale(y)]

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)

TRS复合矩阵的拆解相关推荐

  1. html5的video怎么把里面的控制器移出来_日产Pro-Pilot的ADAS控制器拆解

    接昨天的文章,我们来继续看一下日产Propilot的硬件迭代,这里主要分成几个部分,1)摄像头拆解 2)ADAS控制器1拆解和ADAS2控制器拆解,目前Propilot还没有拆解信心,但是通过官方发布 ...

  2. 3天拆解数据分析全流程!

    一.数据分析的学习困惑 数据分析作为基础能力,关于如何学习,可以先了解常见的学习困惑: 理论.方法都会,一到实际操作就无从下手 学会了数据分析却不会用可视化图表进行结果展示 数据分析没思路,总也抓不住 ...

  3. 实操教程|Pytorch常用损失函数拆解

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者 | 小新 来源 | https://lhyxx.top 编辑 ...

  4. 为什么高手都懂得拆解目标?

    有效地完成目标需要一系列流程和工具. 1.制定目标 SMART原则,是一套制定目标的原则. S-M-A-R-T这5个字母,代表Specific(具体的),Measurable(可衡量的),Attain ...

  5. 管理大师基本功:目标拆解能力

    对公司战略目标有效拆解的前提是了解战略目标,先做出战略目标规划.把整个公司的战略规划做好之后,我们要对公司的战略进行澄清,要把这些目标进行拆解. 比如,哪些是公司的财务的目标.哪些是客户的目标.哪些是 ...

  6. 管理层如何做好目标管理?战略目标拆解是核心!

    目标管理(MBO)是管理大师彼得·德鲁克提出的一种科学且优秀的企业管理方法.它倡导的是管理层和成员亲自参加工作目标的制定和拆解,达成共识,实现"自我控制",这样可以有效提高员工自驱 ...

  7. 拆解交易系统--性能优化,安全加固与弹性扩缩容

    点击上方蓝色字体,选择"设为星标" 优质文章,及时送达 前几篇文章我们拆解了交易系统架构层次的设计方案,对于代码细节我们讨论很很少,今天基于几个方面简短的介绍一下,未来有时间可以针 ...

  8. 拆解交易系统--模块拆解与服务化

    用户高速发展阶段如何做好稳定性 围绕做好稳定性可以从几个角度做,而不是简单的监控,压测,告警和容量规划. 第一件事 :设计方案尽量简单 做好架构很重要的一个原则是,大系统做小,精简设计方案.在众多可能 ...

  9. Excel VBA林木冠幅、分枝胸径字符串的拆解

    一.功能 diacrown_dia(Rng, front=True)函数:将记录林木冠幅的字符串Rng(如"5×7"或"5*7")拆解为东西冠幅(如5)和南北冠 ...

最新文章

  1. Lesson 2.张量的索引、分片、合并以及维度调整
  2. 基于python的nlp预备知识
  3. 新写的c++日志库:log4K
  4. CentOS 6.5系统安装配置图解教程(详细图文)
  5. Python编程的Turtle 库画出“精美碎花小清新风格树”,速取代码!
  6. 《Linux 命令行大全》.pdf
  7. Android 360分包,如何安装分包app安装包
  8. 基于jsp+mysql+Spring+mybatis的SSM健身房管理系统
  9. 如何使用Dart的Stream(一)
  10. 会变色的背景透明NSButton
  11. 4016: 辉夜的夜空明珠(moon)
  12. imx6q android nfs normal boot log
  13. 频数直方图的步骤_把握步骤 正确绘制频数分布直方图
  14. Hibernate笔记+相关面试题
  15. 使用安卓手机上的shh软件ConnectBot管理您的Linux服务器
  16. 【Unity-讲座笔记】江毅冰:从游戏到实时电影
  17. 用blender和MakeHuman生成人体动画
  18. 查询mysql 的内存使用_mysql查看内存使用情况
  19. Python中的链表和数组如何区分?
  20. 【云开发】小程序端操作数据库详解

热门文章

  1. 基础电子元器件介绍-4.二极管
  2. 服装设计师如何进行市场调研?
  3. 小米5怎样升级android,小米5开发版怎么升级Android 7.0?小米5开发版升级Android 7.0教程...
  4. 大学生实习报告心得三篇
  5. 上海店宝宝:电商靠谱助力农产品出村进城
  6. setsockopt()和getsockopt()
  7. 常见信道通频带、带宽及信息传输速率
  8. 【技术推荐】正向角度看Go逆向
  9. 风华是一指流砂,苍老了一段过往年华
  10. 文字检测与识别项目整理