概念:
计算机图形:
1.光栅化 Rasterization
2.曲线和曲面 Curves and Meshes
3.光线追踪 Ray Tracing
4.动画/模拟 Animation / Simulation
图形学需要的线性代数并不多,主要是向量和矩阵的一些知识
(先图后文)
一:向量
长度和方向
1.向量的长度
2.单位向量的表示
向量加法的平行四边形法则(平移)和三角形法则(首尾相连)
向量在坐标系中的表示:
1.(4,3)就表示多少个x和多少个y
2.第一个是列向量表示,第二个是行向量表示,第三个是长度表示
向量点乘:
1.输入向量,输出数值
2.向量相乘等于长度相乘再乘夹角余弦
3.得出夹角等于ab相乘出去长度乘积,也就是单位向量相乘
4.交换律结合律分配律
5.由于cos90=0,因此垂直的向量点乘为0
点乘在坐标系的运算
求b在a上的投影:
1.方向肯定是和a一样的,所以等于k倍的a的单位向量,k是长度,也就是b的长度乘夹角余弦,夹角余弦等于a单位向量乘b单位向量,
2.于是可以把一个向量分解成两个向量
点乘的一个用法:
1.a向量的方向为标准,以上半区为前,下半区为后,一个向量与a的点乘如果是正数,则方向为前,如果是负数,则方向为后
2.一个向量与a的点乘,越接近1,则接近a,0为垂直,-1为最远
向量的x乘与点乘完全不同:
1.结果是一个新的向量,这个向量同时垂直于原来的两个向量
2.长度是长度相乘和夹角sin值的乘积
3.新的向量的方向可以由右手定则确定,举例:图中a x b,四指的方向摆成与以a的方向为准,从a的顶端到b的顶端的方向相同,大拇指即是是新向量c的方向,也就是向上的,
4.因此,如果是b x a,那么c应该是向下的.和点乘不同,不满足交换律
5.a x a = 0,因为sin0 = 0,但是结果仍然是一个向量,也就是零向量,并非数值
1.结果是一个向量
2.上面是二维坐标系,下面是三维坐标系
向量x乘的用法:正左负右,注意左右不一定是视觉上的,参考右边的例子
1.左边的图,假设a和b都是在x,y平面上的,a x b根据右手定则,跟随x的方向,从x顶点到y顶点,或者说从a顶点到b顶点,得到的新向量是和z一样的,也就是正的(+Z),则b在a的左边
2.如果是b x a,得到的向量方向与z相反(-Z),则a在b的右边
3.右边的图,判断p点是不是在三角形内,首先ab x ap,结果是正的,得到ap在ap的左边,然后bc x bp,得到bp在bc左边,最后ca x cp,得到cp在ca左边,三次都是正的,证明p在三角形内部
4.如果是反过来画,三次得到的都是负的,也能证明在内部,如果有一个结果不同,则就在外部,根据是哪个结果,能判断在三角形外部什么方向
把空间一个向量分解为互相垂直的三个方向上
并且uvw是单位向量
结合前面的投影那张图
1.分解后的向量相加得到原来的向量,因此分解成三个互相垂直的向量p1+p2+p3 = p
二.矩阵
矩阵乘法:必须是一个列数等于另一个的行数才可以相乘
1.举例:假设是矩阵A*B+P,P中的13,是1行4列,于是去找矩阵A中的1行(1,3),和矩阵B的4列(4,3),计算1x4+3x3 = 13
矩阵乘法不适用交换律.对换位置结果不同
这里是一个根据y轴镜像的效果
行和列互换,并且A乘B后转置等于B先转置再乘上A的转置
1.I是一个单位矩阵,只在左上角到右下角的对角线上有非零的数,叫做单位矩阵
2.如果一个矩阵A与矩阵B相乘得到一个单位矩阵,那么B就是A的逆矩阵,互逆矩阵也有类似转置的特性
1.A点乘B,可以表示成A的转置点乘B,因为向量默认是列向量,所以要把A先转置才能乘,最后得到一个数值
2.AxB,需要先把A特殊处理,按照图中进行转换