向量叉乘与叉乘矩阵
向量叉乘
右手点赞,a x b,4个握住时手指反方向经过b,顺着a正方向指出,拇指指向为 a与b 的叉积
a、b分别为三维向量
a叉乘b一般定义为
可是这只是一个符号的定义啊,具体怎么得到代数值呢
关键方法就是引入单位坐标向量,这里用i j k来表示三维坐标轴,这里只是举例,可以扩展到更多维,只是比较抽象
通过引入单位向量,向量就可以转化为代数形式
单位向量叉乘为0
计算叉乘
叉乘矩阵
叉乘判断位置
a 叉乘 b 为正,则b在a左侧,a叉乘b为负,则b在a右侧
A,B,C逆时针组成三角形,AB与AP叉乘,BC与CP叉乘,CA与CP叉乘,结果都为正,则p在三角形内
A,B,C顺时针组成三角形,AB与AP叉乘,BC与CP叉乘,CA与CP叉乘,结果都为负,则p在三角形内
A,B,C逆时针组成三角形,AB与AP叉乘,BC与CP叉乘,CA与CP叉乘,一个结果都为0,则在边缘
2D线性变换
变换矩阵在图形学中很重要,一切物体的缩放,旋转,位移,都可以通过变换矩阵作用得到。同时在投影 变换的时候也有很多应用
如上图,通过不同的A(a11,a12,a21,a22)使得x,y的数值发生一定变换
- 缩放
图形经过缩放,x 和 y 都变成了原来的 0.5 倍
经过缩小,x,y变为原来的0.5倍,即上面等式右边 a11x + a12y = 0.5x,a21x + a22y = 0.5y
那么左边矩阵应该为
当然,对角的两个值可以不同,大小也是任意的,可以大于 1,但是始终大于 0。当我们的矩阵变成这样的时候,图形变化就变成了这样
- 对称
按缩放的矩阵格式,我们先假设,其中一个不变,也就是 1,而另一个不断缩小,直到小于 0,会变成怎样。(也就是 a11 不变等于 1 的情况下,a22 小于 0,亦或者 a22 不变等于 1,a11 小于 0
第一种情况,可以算出来,最后的矩阵是
也就是说,y 没有发生变化,而 x 则变成负的,因此相当于做了一次翻转,沿 y 轴翻转,也就是对称
同理,第二种情况则是沿着 x 轴进行翻转的对称图形,x 不变的情况下,y 轴变成负的了
- 剪切
可以看到,图形像是右上角被往右拉动,底部不变的向右倾斜一样,也就是y坐标并没有变换,a21x + a22y = y,那么a21 = 0,a22 = 1
对于x轴,底下的边固定不变,而上面的那条边则整体往右偏移了一个单位 1a。也就是x = x + a*y,a11x + a12y = ay,即a11 = 1,a12 = a
当我们知道图形与 y 轴的夹脚后,我们可以将矩阵写成
- 旋转
先看下面的图,图中向量 a 与 x 轴之间的夹角为 α,向量 b 由 a 旋转而来,夹角为 φ。假设他们的长度为 r
根据三角函数,我们可以得出关于向量 a
对于向量 b,它跟 x 轴的夹角相当于是 α + φ,因此可以得出
由公式可以得出
a11x+a12y=cosφ,a21x+a22y=sinφ
a11=cosφ,a21x=sinφ
仿射变换
- 位移(translation)
- 其他线性变换
逆变换
复杂的变换可以由简单的变换得到,且变换间的操作顺序性很重要
3D线性变换
- 维缩放(scaling)
- 剪切(shearing)
- 旋转(rotation)
3维旋转有3个矩阵,分别对应绕x轴,y轴,z轴旋转,同时有很关键的一点要注意!我们所采用的是右手系,因此旋转是有定向(orientation)正如在二维,是x轴向y轴旋转,对应到3维便是绕z轴旋转(x轴转向y轴),不难推出绕x轴旋转(y转向z),绕y轴旋转(z转向x), 如果想不明白,右手螺旋定则试一试就知道了! x->y->z->x…
绕z旋转的变换矩阵
绕x旋转的变换矩阵
绕y旋转的变换矩阵
y由z叉乘x得到,所以要是逆矩阵(由于是正交矩阵,也可以表示转置矩阵)
- 维绕任意轴旋转
我们只有绕x,y, z旋转的方法,怎么随便给一个轴让你绕着他旋转呢!很直观的,我们把该轴给先旋转到任意的x,y,z轴上,然后就可以应用基本的旋转矩阵,最后再逆旋转回来即可
这里的Rx是知道的,问题只剩怎么求R1了,设我们想围绕旋转的轴为u,R1便是将u旋转到x的矩阵
具体来说这里我们需要以u为一轴,构造一个3维正交坐标系,然后将u-x对齐,那么其它两轴就肯定和y和z对齐了!构造如下,任取一t方向不与u重合
此时u, w, v便是我们构造出的新坐标系
现在得到了u,w,v 对应 x,y,z如何将我们的新坐标系与原始坐标系重合,这其实再简单不过了,我们取R1 = (u,w,v), 该旋转矩阵的含义便是将x , y , z 旋转到u,w,v的旋转矩阵(不信可以直接R1x,R1y,R1z试试便一目了然),旋转矩阵是正交矩阵,旋转矩阵的转置便是它的逆,也是几何意义上的反作用,因此!将u,w,v旋转到x,y,z的矩阵了。现在我们知道了R1知道了RX,那么围绕位移轴的旋转也就得到了
3D仿射变换
与2D仿射变换道理一致
3D逆变换与2D逆变换道理一致