内容会持续更新,有错误的地方欢迎指正,谢谢!
引言
一些很简单的线性代数的基本知识:矢量和矩阵。So Easy~
笛卡尔坐标系
两种三维坐标系:左手坐标系和右手坐标系。
在Unity中:
对于模型空间和世界空间,使用的是左手坐标系;对于观察空间,使用的是右手坐标系。
点和矢量
单位矢量:
法线方向、光源方向等矢量不一定是归一化后的矢量,由于我们的计算往往要求矢量为单位矢量,因此,在使用前要对这些矢量进行归一化运算。
矢量的点积:
公式一:a Dot b=axbx+ayby+azbz
公式二:a Dot b=|a||b|cos(角度)
代码:dot(a,b)
点积在图形学中用得很多,其几何意义很重要,其中一个几何意义:投影(也就是一条边投影到另一条边的长度)。
矢量的叉积:
公式一:a × b=(aybz-azby , azbx-axbz , axby-aybx)
得到的结果是一个垂直于矢量a和b所在的平面的矢量。
公式二:|a × b|=|a||b|sin(角度)
其中,|a × b|的值为 以a和b为两边的平行四边形的面积
叉积在图形学中常用于计算垂直于一个三角面的矢量,用于判断三角面片的朝向等。
矩阵
**矩阵乘法:**m×n的矩阵 乘以 n×p的矩阵 等于 m×p的矩阵:
一个矩阵可以把一个矢量从一个坐标空间转换到另一个坐标空间。
特殊矩阵:
- 方块矩阵:简称方阵,就是行和列相等的矩阵。除对角线上的元素的其他元素都是0,则是对角矩阵。
- 单位矩阵:对角线元素都是1的对角矩阵就是单位矩阵。
- 转置矩阵:行列互换,右上角加T。