零基础学图形学(10) 几何知识——矩阵操作
来源:互联网 发布:centos安装配置samba 编辑:程序博客网 时间:2024/06/10 01:48
(1)转置(transpose)
矩阵M的转置是另外一个矩阵,我们写成下面这种样式:MT(右上标T),我们可以使用不同的方式描述矩阵的转置。它可以描述为从主对角线(diagonal)左右对换,上下对换获取转置矩阵。M的行写成MT的列,M的列写成MT的行。可以使用下面的代码计算矩阵:
Matrix44 transpose() const { Matrix44 transpMat; for (uint8_t i = 0; i < 4; ++i) { for (uint8_t j = 0; j < 4; ++j) { transpMat[i][j] = m[j][i]; } } return transpMat; }
交换矩阵的行和列,因为这个惭怍不能在一个矩阵中完成,我们需要新创建一个矩阵,然后通过函数返回。当3D程序中的行顺序矩阵转为列顺序矩阵时矩阵的转置是有用的。
(2)倒置(Inverse)
点A和矩阵M相乘得到点B,点B和点A的倒置相乘得到点A.在数学上,矩阵的倒置通过写成M-1(-1是上标)的形式。很显然我们得到
M * M-1 = I
这里的I是相似矩阵,矩阵和它的倒置矩阵相乘得到相似矩阵。
我们已经在矩阵如何工作的章节已经提到,正交矩阵可以通过计算他的转置矩阵轻易地获取他的倒置矩阵。正交矩阵是一个方形矩阵,它的行和列是正交的单位向量,这是个很重要的特性,我们会在法向量平移中用到。
矩阵的倒置在3D中有很重要的地位。我们知道我们可以使用向量和矩阵的乘法将一个点或者向量进行变换。但是有时候也需要我们将点或者向量移动到原来的地方。它经常是需要的,比如射线的方向和原本物体的空间测试光纤和物体相交。如果物体空间和这个光线有相交的地方,需要把它们转换到世界坐标系中。
矩阵的倒置会在CG数学和物理中讲到,如何进行一个矩阵的倒置(这个会在老版本的这个网站中提供)。开发一个基本的渲染器没有使用矩阵和它们的倒置会很受限制的,因此我们提供了一些代码教你怎么做。你可以使用这些代码不用担心它们是怎样工作的,如果你感觉没有准备好,你可以其他的时间阅读这些比较超前的内容。
(3)矩阵行列式
这部分以后会写。
- 零基础学图形学(10) 几何知识——矩阵操作
- 零基础学图形学(5) 几何知识——矩阵
- 零基础学图形学(6) 几何知识——矩阵是如何工作的:第一部分
- 零基础学图形学(7) 几何知识——矩阵是如何工作的:第二部分
- 零基础学图形学(12) 几何知识——创建面向矩阵或者本地坐标系统
- 零基础学图形学(4) 几何知识——点和向量的数学操作
- 零基础学图形学(2) 几何知识——点,向量,法向量
- 零基础学图形学(3) 几何知识——坐标系统
- 零基础学图形学(8) 几何知识——点和向量的变换
- 零基础学图形学(9) 几何知识——行向量和列向量
- 零基础学图形学(11) 几何知识——球坐标和三角函数
- 零基础学图形学(13) 几何知识——法向量变换
- 零基础学图形学(14) 几何知识——Geometry源码
- 零基础学图形学(1) 序言——各级标题
- 零基础学图形学(14) 蒙特卡罗数学方法——快速介绍
- 计算机图形学—几何变换
- 零基础学c++(矩阵相乘)
- 零基础一起学javascript—数据类型
- 常用加密算法介绍--DES3
- 文档无法打开
- Mysql清空表(truncate)与删除表中数据(delete)的区别
- jmeter 集合点
- 什么是angularjs
- 零基础学图形学(10) 几何知识——矩阵操作
- 7-11 哈利·波特的考试(25 分)
- Mybatis中的resultType和resultMap
- 文件上传下载
- Quartz2 动态使用
- 加密和签名的区别
- Android下的配置管理之道之repo的使用
- 华展云-让展览更高效 2017年第35届中国国际体育用品博览会会刊(参展商名录)
- 【跨平台编程工具】XERO CODER 4.2.8.0 For x86 Cracked By PiaoYun/P.Y.G 优雅破解