这是我参与12月更文挑战的第21天,活动详情查看:2021最后一次更文挑战
线性代数是图形学的数学基础。
向量
向量表示的是方向+长度这两个维度。
单位向量用向量除以长度,只表示一个方向。
向量计算
两个向量首位相加,可以将两个向量首尾相加。
向量有两种乘法,点乘和叉乘。
点乘就是两个向量的值乘以它们的夹角余弦;在笛卡尔坐标系中,也等于向量每个坐标乘积的和。这个很有用了,给定两个向量,就知道了它们的点乘值,也知道了每个向量的长度,这样可以算出两个向量的夹角。
得到了两个向量的夹角。也可以算出一个向量在另外一个向量的投影,也是根据夹角得出来的。投影可以将一个向量分解为两个向量。根据夹角也可以算出两个向量的夹角的关系,相同/相反方向。
向量的叉积,主要是为了得到一个与原有向量都垂直的一个向量,值为两个长度乘以两个向量角度的正弦值,方向通常根据右手螺旋定则得出来。
上图为叉乘在代数/矩阵中的表示。
叉乘的作用
- 判断左右,a叉乘b,z为正,b在a的左侧,z为负,b在a右侧
- 判断内外,分别判断,ab、ap,bc、bp,ca、cp,如果p所在的向量都是在左侧,那么说明p在三角形内部。可以用来判断像素点在着色内部还是外部。
矩阵
矩阵就是在一定行列里排布的数字,从前面已经看出来,它是向量的一种非常方便的表现形式。
矩阵的乘法,(MN)(NP)=(M*P),不满足交换律,满足结合率和分配律。
矩阵和向量的关系,如上所示,即矩阵和向量存在一一对应的关系。
单位矩阵是一种特殊的矩阵,任何矩阵乘以单位矩阵都是它本身,并且矩阵a和矩阵b的乘积是单位矩阵,我们就说这两个矩阵互逆。
矩阵的转秩,就是矩阵的行列互换,是矩阵的一种特殊算法。
总结
可以看到图形学需要的数学基础不是很多,需要我们对向量和矩阵有个基础的认识。其中向量的点积和叉乘都是非常重要的概念,有非常实际的用处,需要特别注意。
本篇文章总结自games101公开课,感兴趣的可以去看看。www.bilibili.com/video/BV1X7…