
什么是向量
向量的定义
- 向量是有大小和方向的有向线段
- 向量没有位置,只有大小和方向
- 向量的箭头是向量的结束点,尾巴是向量的起始点
- 向量描述的位移能被认为是与轴平行的位移序列
- 向量表示:三维(ax,ay,az) 二维(ax,ay)
向量与标量
- 向量:有大小和方向的有向线段
- 标量:只有大小,没有方向的量
向量与点
- 向量和点数学形式上相等,但几何意义完全不同
- 点:有位置,没有实际大小或方向
- 向量:无位置,有实际大小和方向
- 联系:任何一个点都可以看作是从原点出发的向量
如何计算
标量与向量之间的计算
- 不可加
- 不可减
- 可乘:将向量的每个分量与标量相乘即可
- 可除:将向量的每个分量与标量的倒数相乘
- 几何解释:向量乘以标量的效果是以标量的大小缩放向量的长度,负值则方向相反
- 例子:-2 *(2,-5)=(-4,10) (6,-2,-4)/ 2 = (3,-1,-2)
向量的模长
计算公式:||v|| = pow(pow(vx,2)+pow(vy,2),0.5);
几何解释:当我们将所示向量作为斜边构建一个直角三角形,所示向量的大小(模长)即可通过扫侥幸勾股定理推出
例子:(-12,5)的模长为 pow(pow(-12,2)+pow(5,2),0.5)=pow(144+25,0.5)=13
标准化向量
·标准化向量(单位向量)就是大小为1的向量。(适用范围:仅需要知道方向而不关心其大小,例如法线)
·运算法则:将向量除以她的大小(模长),v_{normal}=\frac{v}{|v|},v ≠ 0(API:normalize(Vector3))
·例子:标准化向量(12,-5), \frac{[12-5]}{|[12-5]|}=\frac{[12-5]}{\sqrt[]{12^2+(-5)^2}}
向量之间的加减法计算
计算公式(ax,ay)+(bx,by) = (ax+bx,ay+by)
加法:对应位置相加 例:(1,-4)+(7,3)=(8,1)
减法:对应位置相减 例:(-3,6)-(-4,3)=(1,3)
几何解释:假设有向量(ax,ay)和(bx,by),a向量加b向量最后得到的是从a向量起点到b向量结束之间形成的新的向量
计算两点间距离:距离公式
计算公式:
应用范围:计算一个向量到另一个向量的距离(a 到 b 的位移向量为 b-a)
几何解释:
向量的点积计算
乘法之点积(又称点乘,内积)
计算公式:(a_x,a_y)\cdot (b_x,b_y) = (a_xb_x+a_yb_y)
向量点乘就是分量乘积的和,结果是一个标量,并满足乘法交换律a\cdot b=b\cdot a
向量点积的几何意义与向量的投影
几何解释:点乘记过描述了两个向量方向的“相似”程度,点乘结果越大,夹角角度越小,两个向量越接近(反馈到渲染上就是面的明暗效果)
计算公式: a · b = |a||b|cosΘ
投影的几何解释:假设有两个向量 V 和 N,将V分解为两个向量, V平行 和 V垂直 ,V平行 平行于 N,V垂直垂直于N,并满足 V = V平行 + V垂直 ,则称平行分量 V平行 为在 N 上的投影
兰伯特光照模型
兰伯特光照模型是目前最简单通用的模拟漫发射的光照模型
使光照方向的反方向为 L 向量,法线方向为 N 向量,则有:
- L 与 N 方向相同,则Normal · Light = 1(纯亮)
- L 与 N 方向相反,则Normal · Light = -1(纯黑)
- L 与 N 方向垂直,则Normal · Light = 0(纯黑)
向量的叉积计算
乘法之叉积(又称叉乘,叉积) 仅运用于3D向量
计算公式:
不满足交换律,a x b ≠ b x a,满足逆交换律:a x b = -(b x a)
向量叉乘就是分量交叉相乘再相减,结果是一个向量且不满足交换律
几何解释:叉乘得到的向量垂直于原来的两个向量
向量叉积的大小与方向判断
计算公式: