矩阵的定义

在Unity中,可以使用Matrix4x4.SetRow和Matrix4x4.SetColumn来设置一个4×4矩阵的某行或某列。
在Unity中,可以使用Matrix4x4.GetRow和Matrix4x4.GetColumn来获取一个4×4矩阵的某行或某列。结果为Vector4类型。
这里的index是从0开始。

矩阵和矩阵的加法/减法

只有维度相同的矩阵,才可以相加相减。
矩阵和矩阵的相加/相减即矩阵各相同位置的元素的相加相减。

矩阵和标量的乘法

矩阵和标量相乘,得到的仍然是一个相同维度的矩阵。矩阵和标量的乘法,即矩阵的每个元素和该标量相乘。

向量可以被当做一行或者一列的矩阵。3维向量可以看作是3×1矩阵,或是1×3矩阵。
矩阵和矩阵相乘时,只有满足第一个矩阵的列数和第二个矩阵的行数相等的条件时,才可以相乘。即r×n矩阵,才能和n×c矩阵相乘,得到的结果是一个r×c矩阵。
所以,向量与矩阵相乘时,行向量需要在左边,列向量需要在右边。

两个矩阵相乘的规则和矩阵和向量相乘的规则相同。
矩阵A和矩阵B相乘,得到的矩阵C中的任意元素Cij等于A的第i行向量与B的第j列向量的点乘结果。
在Unity中,可以使用Matrix4x4.operator *来进行矩阵和矩阵的乘法运算。

特殊矩阵

方块矩阵:行数和列数相等的矩阵被称为方块矩阵。
方块矩阵中,行号和列号相等的元素叫对角元素。
如果一个矩阵除了对角元素外的所有元素都为0,那么这个矩阵就叫做对角矩阵。

如果对角矩阵中的对角元素都为1,则这个对角矩阵被称为单位矩阵。
用任意一个矩阵乘以单位矩阵,都将得到原矩阵。
在Unity中,可以通过Matrix4x4.identity来获得一个4×4的单位矩阵。
在Unity中,可以通过Matrix4x4.isIdentity来判断一个矩阵是不是单位矩阵。
在Unity中,可以通过Matrix4x4.zero获得一个4×4的所有元素都为0的矩阵。

转置矩阵是对原矩阵进行转置运算后得到的矩阵。
一个r×c的矩阵转置后,可以得到一个c×r的矩阵。转置运算,即将原矩阵的第i行变为第i列,第j列变成第j行,也可以看作是沿着对角线翻折。
在Unity中,可以通过Matrix4x4.transpose获取一个矩阵的转置矩阵。

逆矩阵,只有方块矩阵才可能有逆矩阵,因为一个矩阵A和它的逆矩阵B需要满足条件:AB = I(I是单位矩阵)。
如果一个矩阵有相应的逆矩阵,则可以说这个矩阵是可逆的,或者说是非奇异的。如果一个矩阵没有相应的逆矩阵,则可以说这个矩阵是不可逆的,或者说是奇异的。

判断一个矩阵是否是可逆的,需要求得矩阵的行列式,如果它的行列式不为0,那么它就是可逆的。
二阶行列式的计算方法为对角线相乘相减。

三阶行列式的计算方法可以使用代数余子法,即行列式可以按某一行或某一列展开成元素与其对应的代数余子式的乘积之和。
行列式某元素的余子式:行列式划去该元素所在的行与列的各元素,剩下的元素按原样排列,得到的新行列式.
行列式某元素的代数余子式:行列式某元素的余子式与该元素对应的正负符号的乘积.

一个4×4矩阵的逆矩阵的求解方法如下:
在Unity中,可以通过Matrix4x4.inverse来获取一个4×4矩阵的逆矩阵。

Unity3D之矩阵运用相关推荐

  1. 【Augmented Reality】增强现实中的光学透射式头盔显示器的标定深入

    前言 上次我们讲到,我们可以使用Unity3D编写程序标定摄像头和HMD之间的映射关系,并得到一个3*4的矩阵.通过这个矩阵我们就可以知道任意一个世界坐标系中的点在HMD屏幕上的位置.但是,仅仅这样我 ...

  2. Unity3D C#数学系列之矩阵基础

    目录 1 引言 2 矩阵的作用 3 矩阵的乘法 3.1 矩阵与标量的乘法 3.2 矩阵与矩阵的乘法 4 特殊矩阵 4.1 方块矩阵 4.1.1 对角矩阵 4.1.2 单位矩阵 4.2 转置矩阵 4.3 ...

  3. 解析Unity3D中计算法线矩阵的函数

    如果法线简单地跟着顶点变换有时会出现如下图情况, 若图2所示,垂直关系变了. 可以用线性代数知识证明 设原来的切线为 T T T,法线 N N N,则有 T T N = 0 T^TN=0 TTN=0 ...

  4. Unity3d shader内置矩阵

    内置矩阵 支持的矩阵(float4x4): UNITY_MATRIX_MVP        当前模型视图投影矩阵 UNITY_MATRIX_MV           当前模型视图矩阵 UNITY_MA ...

  5. unity3d:Matrix4x4矩阵位移,缩放,旋转

    二维坐标轴旋转公式推导 https://www.cnblogs.com/fangsmile/p/8622421.html 设点M在原坐标系中的坐标为(x,y),对应向量的模为r,幅角为α.将坐标轴绕坐 ...

  6. Unity3D导航网格,矩阵旋转,欧拉旋转

    旋转(欧拉.矩阵) 1.Transform:position(平移).rotation(旋转).scale(缩放). 2.四元数:应于transform组件中的rotation属性,这个属性的类型其实 ...

  7. Unity3D心得分享

    本篇文章的内容以各种tips为主,不间断更新 2019/05/10 最近更新: 使用Instantiate初始化参数去实例对象 Unity DEMO学习 ======================= ...

  8. unity3d 数学基础与数学辅助类

    原文 http://my.oschina.net/u/243648/blog/67193 1.  数学(点乘/叉乘)/unity3d的数学辅助类 2.  坐标系统(本地/世界/屏幕) 3.  Unit ...

  9. Unity3D脚本中文系列教程(七)

    http://dong2008hong.blog.163.com/blog/static/4696882720140311445677/?suggestedreading&wumii Unit ...

最新文章

  1. 棋盘分割(记忆化搜索)
  2. 推荐系统里,你是怎么Embedding的?
  3. 云顶之弈机器人法爆_云顶之弈10.16b机器人阵容推荐 云顶之弈10.16b机器人娱乐阵容玩法攻略...
  4. (2)树莓派挂载外部硬盘
  5. 查看mysql数据用户权限_查看MYSQL数据库中所有用户及拥有权限
  6. 外包征集令:一个Android TV酒店项目
  7. 10)Thymeleaf 标记选择器语法
  8. CSS 3之美化表格样式
  9. bigemap功能介绍
  10. 【non-coding RNA】 非编码RNA有哪些?
  11. 智能指针之atuo_ptr源码剖析
  12. 2016年年度总结 金鸡纳福 岁月奔跑
  13. Vokenization:一种比GPT-3更有常识的视觉语言模型
  14. 【css的基础操作(css语言规范,字体,表格,类名)】
  15. python简单的预测模型_python简单预测模型
  16. 海洋捕食者算法 MPA
  17. java实现多文件压缩
  18. Machine Learning 机器学习
  19. JS、JNS、JP(JPE)、JNP(JPO)指令详解、从原理上解释
  20. 【PMP】燃起图燃尽图分析

热门文章

  1. 月薪两万的“土豪”师兄,加个微信吧!
  2. Django之Form表单验证组件Tyrion
  3. 微信小程序-番外 可视化助手的使用
  4. EasyX窗口大小字号字体字体颜色的设置
  5. 阿里巴巴(菜鸟) - 算法工程师(机器学习)提前批笔试面试总结
  6. 【图形学】布林冯BlinnPhong
  7. 基于XCVU9P+ C6678的100G光纤的加速卡
  8. js 下拉层级多选_Jquery实现select二级联动多选下拉菜单
  9. 设计要用计算机吗,作为设计师 你需要这样的笔记本电脑
  10. 机房温度远程监控方案