UnityShader学习笔记(数学知识)
二维(笛卡尔)坐标系
二维向量(矢量)
具有方向的线段叫做有向线段,以A为起点、B为终点的有向线段作为向量,可以记作 v = B – A。区别于有向线段,在一般的数学研究中,向量是可以平移的。
一个向量的坐标等于表示此向量的有向线段的终点坐标减去始点的坐标。
二维向量运算(加法)
二维向量运算(加法)
二维向量运算(减法)
二维向量运算(点乘)
根据这个公式就可以计算向量a和向量b之间的夹角。从而就可以进一步判断这两个向量是否是同一方向,是否正交(也就是垂直)等方向关系,具体对应关系为:
a·b>0 方向基本相同,夹角在0°到90°之间
a·b=0 正交,相互垂直
a·b<0 方向基本相反,夹角在90°到180°之间
向量运算(叉乘)
两个向量的叉乘,又叫向量积、外积、叉积,叉乘的运算结果是一个向量而不是一个标量。并且两个向量的叉积与这两个向量组成的坐标平面垂直。
向量的叉乘公式为:a ^ b = |a| * |b| * sinθ,叉乘的结果是一个新的向量,所以也称为向量积,它垂直于相乘的a、b两向量所构成的平面。
向量积被定义为:
模长:(在这里θ表示两向量之间的夹角(共起点的前提下)(0° ≤ θ ≤ 180°),它位于这两个矢量所定义的平面上。)
方向:a向量与b向量的向量积的方向与这两个向量所在平面垂直,且遵守右手定则。(一个简单的确定满足“右手定则”的结果向量的方向的方法是这样的:若坐标系是满足右手定则的,当右手的四指从a以不超过180度的转角转向b时,竖起的大拇指指向是c的方向。c = a ∧ b)
单位向量
单位向量是指模等于1的向量。由于是非零向量,单位向量具有确定的方向。单位向量有无数个。
一个非零向量除以它的模,可得所需单位向量。一个单位向量的平面直角坐标系上的坐标表示可以是:(n,k) ,则有n²+k²=1。
其中k/n就是原向量在这个坐标系内的所在直线的斜率。这个向量是它所在直线的一个单位方向向量。不同的单位向量,是指它们的方向不同。对于任意一个非零向量a,与它同方向的单位向量记作零向量。
二维坐标系旋转变换
x’=x·cos(θ)+y·sin(θ)
y’=y·cos(θ)-x·sin(θ)
绕坐标原点逆时针旋转θ,上式θ值为正,顺时针旋转θ,上式θ值为负。
二维坐标系平移变换
已知基坐标系XOY,把坐标系平移(a,b)得到一个新的坐标系X’O’Y’,如果基坐标系中一点P(x,y),跟随坐标系一起平移,那么此时P点在基坐标系XOY中的坐标为(x+a,y+b)。
二维坐标系平移+旋转
x=x’·cos(θ)+y’·sin(θ)+a
y=y’·cos(θ)-x’·sin(θ)+b