games101_笔记_02:向量与矩阵
前情回顾:什么是计算机图形学,图形学有哪些应用,课程要求
图形学依赖于线性代数,微积分,光学,力学,信号处理,统计,数值分析,美学;分为两个部分说明:向量与矩阵。
向量(vector):表示有大小有方向的量。AB的向量等于B-A,向量的属性就是方向与大小,向量不具有位置这个概念,随意平移,向量依然方向不变,大小不变。
模长为1,的向量是单位向量。
向量的基本计算:平行四边形法则,三角形法则
向量在代数上的计算:加法直接就是相应的坐标相加。同时向量还能表示为矩阵
在图形学中,一般把向量做成一个列矩阵。把向量做一个直角坐标系的做法,是很利于向量做计算模长的
向量的点乘:
点乘可以快速地得到两向量之间的夹角,向量之间的性质:结合律,交换律
在代数上计算点乘:
向量的另一个用处:投影
要计算a向量在b向量的投影,就是a的模长乘以两者之间的余弦
投影的好处是,可以分解向量,就相当于物理中分解力一般。
向量的点乘还能得到前与后的信息:
可以告诉我们是方向相同还是方向相反,还能告诉大家,向量之间的距离有多近。
一般向量默认成列向量,是一个约定俗成的事情;
向量的叉乘:
最终得到的第三个向量就是垂直与两者向量的
具体判定方向就是用右手螺旋定则,从a叉乘b,右手手指从a弯到b,然后看大拇指的方向。与图中是一致的。
与右手螺旋定则结果相反,对应用的就是左手坐标系,如果是相同的结果,就是右手坐标系。opengl用的就是左手坐标系
向量的叉乘在代数的写法:
叉乘的作用:
判定左与右,判定内与外
判定左与右。如果a叉乘b,结果是正的,那么是逆时针的,相对于a来说,那自然就是在a的左边
如何判定p点在三角形内部:
AB叉乘AP,是逆时针的,大拇指向屏幕外
BC叉乘BP,是逆时针的,大拇指向屏幕外
CA叉乘CP,是逆时针的,大拇指向屏幕外
三者结果相同,说明p相对于ABC三点来说都在他们的左边,那么久只能在三角形的内部。但凡在外部,定有一个叉乘是大拇指指向屏幕内。
通过这个方法,可以在光栅化阶段,看那些像素在三角形内部
如果刚好结果是0说明就在线条上,那这个点在不在三角形内,由自己说了算。
把一个空间中的向量分解在3D坐标系的轴上
矩阵:
这种三行两列的组合就是矩阵
矩阵的乘法:
(3x2)(2x4)这种矩阵的乘法才是有意义的,也才是计算的出来的。
(MxP)(NXS)这种形式是错误的,(MXP)(PXD)这种形式就是正确的,代表着几行几列
要计算未知的数字,它是一行,二列。
找第一个矩阵的第一行,第二个矩阵的第2列,那么计算就是1x6+3x7;
矩阵的性质:矩阵是没有交换律的,但是有结合律的。
矩阵的操作:转置:行列互换
单位矩阵:
一个矩阵乘以另一个矩阵,结果是单位矩阵,那么这两个矩阵就是互逆矩阵
向量的点乘与叉乘在矩阵上的表示;
本文作者:Kerios
本文链接:https://www.cnblogs.com/kerios-123/p/15838353.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步