博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3D数学读书笔记——矩阵进阶
阅读量:6198 次
发布时间:2019-06-21

本文共 1368 字,大约阅读时间需要 4 分钟。

 本系列文章由birdlove1987编写,转载请注明出处。  

 文章链接:http://blog.csdn.net/zhurui_idea/article/details/25242725

最终要学习矩阵的平移了,通过平移能够处理非常多问题,包含非坐标轴基准的变换问题,不同坐标系转换问题。嘿嘿!

行列式(事实上行列式就是一种计算法则)

在随意矩阵中都存在一个标量,称作该方阵的行列式

方阵M的行列式记作 |M| 或 det M 。非方阵矩阵的行列式是没有定义的。

2 * 2阶矩阵行列式的定义

3 * 3阶矩阵行列式的定义

ps:(1)矩阵积的行列式等于矩阵行列式的积 |AB| = |A||B|

    (2)矩阵转置的行列式等于原矩阵的行列式 

    (3)假设矩阵的随意行或列全为零,那么它的行列式等于零。

    (4)交换矩阵的随意两行或两列,行列式变负。

    (5)随意行或者列的非零积加到还有一行或列上不会改变行列式的值。

矩阵的行列式有着很有趣的几何解释

2D中,行列式等于以基向量为两边的平行四边形的有符号面积3D中,行列式等于以变换后的基向量为三边的平行六面体的有符号体积

行列式和矩阵变换导致相关的尺寸改变。当中行列式的绝对值和面积(2D)、体积(3D)的改变相关。行列式的符号说明了变换矩阵是否包括镜像投影

矩阵的行列式还能对矩阵所代表的的变换经行分类。假设矩阵行列式为,那么该矩阵包括投影。假设矩阵行列式为,那么该矩阵包括镜像

矩阵的逆

矩阵的逆是矩阵的一种重要的运算,这样的运算仅仅能适用方阵

方阵M的逆,记作,也是一个矩阵,当M与相乘时,结果是单位矩阵

并不是全部的矩阵都有逆矩阵。假设一个矩阵有逆矩阵,那么称它为可逆的非神秘的。假设一个矩阵没有逆矩阵,则称它为不可逆的神秘矩阵神秘矩阵的行列式为零,非神秘矩阵的行列式不为零,所以检測行列式的值是推断矩阵是否可逆的有效方法。

ps:(1) 假设M是非神秘矩阵,则该矩阵的逆的逆等于原矩阵  

    (2) 单位矩阵的逆就是它本身。

    (3) 矩阵转置的逆等于它的逆的转置 

矩阵的逆在几何上很实用,由于它使得我们能够计算变换的“反向”或“相反”变换——能“撤销”原始变换的变换,全部假设向量v用矩阵M来进行变换,接着用M的逆进行变换,将会得到原向量。

正交矩阵

当方阵M与它的转置的乘积等于单位矩阵,方阵M就是正交的

假设一个矩阵是正交的,那么它的转置等于它的逆,我们能够用这个规律来检測矩阵的正交性

ps:这条性质很实用,由于实际应用中常常须要计算矩阵的逆,而3D图形计算中正交矩阵出现得又是如此频繁,这条性质能够大大的降低计算量。

4 x 4齐次矩阵

在4D齐次空间中,4D向量有4个分量,前3个是标准的x,y和z分量,第四个是w,有时称作齐次坐标

增加了w分量,我们就能够利用这个分量来进行3D平移了。

   

4D向量中的w分量还起到了“开关”4x4矩阵平移部分的作用。

这个现象是很实用的,由于有些向量代表“位置”,应当平移,而有些向量代表“方向”不应该平移。从几何意义上讲,能将第一类数据当作点,第二类数据当作向量。

                                                          -End-

 

 參考文献:(1)《3D Math Primer for Graphics and Game Development》

                 (2)百度百科         

 

你可能感兴趣的文章
一些细节记录
查看>>
JSON.stringify()
查看>>
softmax_loss.cu 和 softmax_loss.cpp源码
查看>>
js 历史
查看>>
DDR4中的so-dimm 和component
查看>>
etl的表输入时精度问题
查看>>
使用C# (.NET Core) 实现观察者模式 (Observer Pattern) 并介绍 delegate 和 event
查看>>
FreeBSD查看带宽占用情况,CPU,硬盘IO 虚拟内存等命令
查看>>
需要看源码的java类
查看>>
转: 使用Hystrix实现自动降级与依赖隔离
查看>>
SpringBoot(十七)-- 定时任务
查看>>
Flask框架(1)-程序基本结构
查看>>
从CUBIC/BBR的TCP ACK失速说起
查看>>
dubbo官网和帮助文档
查看>>
Linux常用基本命令:三剑客命令之-awk模式用法(1)
查看>>
常见高阶函数使用
查看>>
Android Studio 导入工程
查看>>
Linux LVM 总结
查看>>
JS类型转换规则详解
查看>>
几种任务调度的 Java 实现方法与比较
查看>>