《3D Math Primer for Graphics and Game Development》读书笔记2
《3D Math Primer for Graphics and Game Development》读书笔记2
上一篇得到了"矩阵等价于变换后的基向量"这一结论。
本篇只涉及两章,但容量已足够喝一壶了。
第8章 矩阵和线性变换
变换物体和变换坐标系是等价的,将物体变换一个量等价于将坐标系变换一个相反的量。
旋转rotation
2D中的旋转只有一个参数:角度θ,逆时针经常被认为是正方向。
在3D场景中,绕轴旋转而不是点。绕轴旋转θ°时,必须知道哪个方向被认为是正方向。在左手坐标系中用左手法则,在右手坐标系中用右手法则判定。
设n为单位向量,方向任意,旋转角度为θ,那么相应的旋转矩阵为:
缩放scaling
设n为平行于缩放方向的单位向量,k为缩放因子,缩放沿穿过原点且平行于n的直线(2D)或平面(3D)进行。
2D的缩放公式
3D的缩放公式
投影projection
2D中,
3D中,
镜像reflection
2D中,
3D中,
切变shearing
切变时角度会变化,但面积和体积不变。
第9章 矩阵的更多知识
行列式determinant
上图展示了行列式的计算方法。可以将任意一行作为主行,然后写出行列式;也可以按列来写,结果都是一样的。
2×2矩阵的行列式等于其围成的平行四边形的有符号面积。
3×3矩阵的行列式等于以变换后的基向量为三边的平行六面体的有符号体积。
如果行列式为零,那么该矩阵包含投影;如果行列式为负,那么该矩阵包含镜像。
矩阵的逆
假设矩阵M有r行c列。记法M{ij}表示从M中除去第i行第j列后剩下的矩阵。称为M的余子式。余子式是一个矩阵。
余子式的有符号行列式称为代数余子式。
用Cij表示M的第i行第j列元素的代数余子式。代数余子式是一个标量。
可以用代数余子式求行列式。
例如4×4矩阵
矩阵M的逆记作M-1,也是一个矩阵,且满足
M的标准伴随矩阵记作adj M,定义为M的代数余子式矩阵的转置矩阵。例如:
M的代数余子式矩阵:
M的标准伴随矩阵:
M的逆矩阵:
标准伴随矩阵提供无分支计算逆矩阵的方法。还有一种求逆矩阵的方法是高斯消元法。
正交矩阵
旋转和镜像矩阵是正交的。
正交矩阵的每一行代表的基向量都是单位向量,且行互相垂直。
矩阵正交化
施密特正交化:
改进的施密特正交化:
4×4齐次矩阵
4×4矩阵可以同时表示线性变换(旋转、缩放。。。)和平移。这是使用4×4矩阵的原因之一。
仿射变换
仿射变换的基本思路是,先平移到原点,然后执行线性变换,最后反向平移回去。
《3D Math Primer for Graphics and Game Development》读书笔记2的更多相关文章
- <数据挖掘导论>读书笔记11异常检测
异常检测的目标是发现与大部分其他对象不同的对象.通常,异常对象被称作离群点(Outlier). 异常检测也称偏差检测(Deviation detection),因为异常对象的属性值明显偏离期望的或者常 ...
- <数据挖掘导论>读书笔记10聚类分析续
基于原型的聚类 模糊c均值使用模糊逻辑和模糊集合论的概念,提出一种聚类方案,它很像K均值,但是不需要硬性地将对象分派到一个簇中.模糊c均值算法有时也称为FCM 混合模型聚类采取这样的访谈,簇集合可以用 ...
- <数据挖掘导论>读书笔记9聚类分析
1. 聚类分析仅根据在数据中发现的描述对象及其关系的信息,将数据对象分组. 其目标是组内的对象相互之间是相似的或者相关的,而不同组中的对象是不同的或者不相关的. 2.聚类分析的重要技术 K均值:K均值 ...
- <数据挖掘导论>读书笔记8FP树
1FP树
- <数据挖掘导论>读书笔记7 Apriori算法
Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法.其核心是基于两阶段频集思想的递推算法.该关联规则在分类上属于单维.单层.布尔关联规则.在这里,所有支持度大于最小支持度的项集称为频繁项 ...
- <数据挖掘导论>读书笔记4--其他分类技术
1.基于规则的分类器 2.最近邻分类器 3.贝叶斯分类器 4.人工神经网络 5.支持向量机 6.组合方法 7.不平衡类问题 8.多类问题
- <数据挖掘导论>读书笔记6关联分析的高级概念
处理联系属性: 基于离散化的方法 基于统计学的方法 非离散化方法 处理概念分层 定义在一个特定领域的各种实体或者概念的多层组织.概念分层可以用有向无环图DAG来标示. 序列模式 可选计数方案 COBJ ...
- <数据挖掘导论>读书笔记5关联分析的基本概念和算法
关联规则的强度可以用support度和confidence(置信)度来度量 关联规则发现 给定事务的集合T,关联规则发现是指找出支持度大于等于minsup并且置信度大于等于minconf的所有规则, ...
- <数据挖掘导论>读书笔记3--分类
1.分类的基本概念 分类任务就是通过学习得到一个目标函数f,把每个属性集x映射到一个预先定义的类标号y 目标函数也称为分类模型. 2. 解决分类问题的一般方法: 决策树分类法 基于规则的分类法 神经网 ...
- <数据挖掘导论>读书笔记2
1.频率和众数 frequency(vi)=具有属性值vi的对象数/m 分类属性的众数mode是具有最高频率的值. 2.百分位数 3.位置度量:均值和中位数 4.散布度量:极差和方差 绝对平均偏差 A ...
随机推荐
- CozyRSS开发记录11-够用的RSS源管理
CozyRSS开发记录11-够用的RSS源管理 1.分析需求 先随手画个用例图来看看有哪些参与者会访问我们的源管理: 2.搞一个Controller类 根据前面分析得出的用例图,我们就可以来设计实现一 ...
- Android网络定位服务定制简述
Android 添加高德或百度网络定位服务 Android的网络定位服务以第三方的APK方式提供服务,由于在国内Android原生自带的com.google.android.gms服务几乎处于不可用状 ...
- 【前端性能】高性能滚动 scroll 及页面渲染优化--转发
本文主要想谈谈页面优化之滚动优化. 主要内容包括了为何需要优化滚动事件,滚动与页面渲染的关系,节流与防抖,pointer-events:none 优化滚动.因为本文涉及了很多很多基础,可以对照上面的知 ...
- 【Mybatis架构】Mapper映射文件中的#{}与${}
前言 还记得当初从北京回来的时候,跟着倪文杰师姐做JavaITOO的一卡通模块,我亲姐贾梦洁带着我一块做,期间,我遇到了一个特别奇葩的问题,就死我要实现Mybatis的模糊查询,根据当时亲姐教给我方法 ...
- APPCAN开发笔记:html页面之间的参数传递:使用js获取url中的参数,以及在APPCAN中不能使用的解决方法
用PHP的GET/POST方式来传递方式已经是司空见惯了,但是如果我的页面是一个静态的html的页面,想传递参数的时候要怎么办呢?在APPCAN的开发中我们会经常遇到这样的问题,因为所有的页面都是静态 ...
- 转:Delphi 函数大全
Delphi 函数大全 - xiucaiyao的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/xiucaiyao/article/details/4544039 名 ...
- SQLSERVER JDBC 存储过程调用偶尔很慢的原因之一【sp_sproc_columns】
在对于CallableStatement进行参数赋值或者取值时,建议直接用索引号,避免使用参数名称! 若使用参数名称,每次调用该存储过程时,jdbc会自动执行 exec sp_sproc_column ...
- BaaS、IaaS、PaaS、SaaS
参考资料:http://www.zhihu.com/question/23048744
- SQL注入攻防入门详解
=============安全性篇目录============== 本文转载 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机 ...
- 基于2D-RNN的鲁棒行人跟踪
基于2D-RNN的鲁棒行人跟踪 Recurrent Neural Networks RNN 行人跟踪 读"G.L. Masala, et.al., 2D Recurrent Neural N ...