《3D数学基础:图像与游戏开发》读书笔记(一)
一、向量运算
1. 点积
点积又叫内积、点乘,两个向量的点积结果是一个标,等于两个向量对应维度数值乘积之和。
⎡⎣⎢⎢⎢⎢a1a2⋮an⎤⎦⎥⎥⎥⎥⋅⎡⎣⎢⎢⎢⎢b1b2⋮bn⎤⎦⎥⎥⎥⎥=a1∗b1+a2∗b2+…+an∗bn(1)
点积结果描述了两个向量的“相似”程度,点积结果越大,两向量越想近。
点积等于两个向量的模的积再乘上两个向量夹角的cos值。
a⋅b=|a|∗|b|∗cosθ(2)
所以如果其中一个向量是单位向量,比如 a 是单位向量,那么
向量点积优先级高于加法和乘法。
2. 叉积
叉积又叫叉乘,两个向量叉积的结果是一个向量,叉积不满足交换律,但满足反交换律:a×b=−(b×a)。
⎡⎣⎢a1a2a3⎤⎦⎥×⎡⎣⎢a1a2a3⎤⎦⎥=⎡⎣⎢a2∗b3−b2∗a3a3∗b1−a1∗b3a1∗b2−a2∗b1⎤⎦⎥(3)
两个向量的叉积得到的向量的模等于两个向量的模的积再乘上两个向量夹角的sin值。
|a×b|=|a|∗|b|∗sinθ(4)
叉积的运算优先级和点积一样,不过两个混合运算时优先计算叉积,因为点积运算结果是标量,标量不能叉积。运算 a⋅(b×c) 称为三重积。
叉积的的结果是一个垂直于 a 且垂直于
二、矩阵
1. 矩阵与向量
一个3维向量相当于一个1x3的矩阵,1x3的矩阵乘上3x3的矩阵等于1x3的矩阵,也就是说一个三维向量乘上一个3x3的矩阵能得到另一个三维向量,实现了向量的变换。
矩阵每一维都可以解释为转换后的基向量。
[100]⎡⎣⎢m11m21m31m12m22m32m13m23m33⎤⎦⎥=[m11m12m13](5)
向量可以代表一个方向,也可以代表一个点,所以和矩阵相乘可以实现点的变换,即可以实现三维物体的变换(旋转、缩放、镜像)。三维向量平移需要4x4的矩阵
2. 矩阵与线性变换
在数学上,如果满足下式,F(a)就是线性的。
F(a+b)=F(a)+F(b)(6)
F(ka)

最低0.47元/天 解锁文章
949

被折叠的 条评论
为什么被折叠?



