该文章主要会写一些图形学相关内容。
将下图中v分解为n方向的投影a,以及垂直分量b。
v,e,α都是已知的量,
cosα=∣v∣∣a∣;
∣a∣=∣v∣cosα;
a=n∣n∣∣a∣=n∣n∣∣v∣cosα=n∣n∣2∣n∣∣v∣cosα=n∣n∣2nv;
b=v−a=v−n∣n∣2nv.
向量叉积结果的模为两向量所组成的平行四边形面积。
S=∣a∣h;
sinα=∣b∣h;
h=∣b∣sinα;
S=∣a∣∣b∣sinα=∣a×b∣.
叉积判断二维两向量方向。
如果a×b>0,则说明b在a的逆时针方向,即图中左边的情况。
否则如果a×b<0,则说明b在a的顺时针方向,即图中右边的情况。
Andrew算法利用叉积求二维凸包。
首先将所有坐标按照x轴为第一关键字,y轴为第二关键字进行排序,分两次遍历所有点,分别求出上凸壳和下凸壳,利用单调栈维护点,以上求凸壳为例,如果栈顶的两个点和当前点的关系为上图中左边的情况,就将栈顶元素弹出,这样就使得栈中的元素按照顺序会始终“左拐”。