差乘积
譯自:http://www.lighthouse3d.com/tutorials/maths/vector-cross-product/
?
????? 兩個向量差乘積得到一個特殊的向量,這個向量指向于(就是垂直)兩個向量確定的平面。假設向量v1,v2在XZ平面上,假設v1到v2是逆時針方向的話,那么差乘積向量方向向上,反之方向向下。差乘積可以使用于許多方面,光照計算或者計算向量之間的夾角。
?
下面的等式展示了計算v1和v2差乘積v的必要步驟。差乘積通常用符號“X”來表示。
v = v1 x v2v = [vx,vy,vz] where,vx = v1y * v2z - v1z * v2yvy = v1z * v2x - v1x * v2zvz = v1x * v2y - v1y * v2x需要注意的是差乘積不符合交換律,事實上它是交換后取反的。下面是差乘積的一些特性:
v1 x v2 = - (v2 x v1)k * (v1 x v2) = v1 x (k*v2) = (k*v1) x v2v1 x (v2 + v3) = (v1 x v2) + (v1 x v3)差乘積向量的長度和差乘向量v1,v2的長度,以及它們的夾角sine值成比例關系。
|v| = |v1| |v2| * sin(a)上面sin里面的a是向量v1,v2的夾角。在下面的公式中,差乘積可以用來計算兩個向量夾角的sine值(內積計算兩個向量的cosines值)差乘積可以定義成C語言中的宏:
#define crossProduct(a,b,c) \(a)[0] = (b)[1] * (c)[2] - (c)[1] * (b)[2]; \(a)[1] = (b)[2] * (c)[0] - (c)[2] * (b)[0]; \(a)[2] = (b)[0] * (c)[1] - (c)[0] * (b)[1];轉載于:https://www.cnblogs.com/byhj/p/4143850.html
總結
- 上一篇: Android系统匿名共享内存Ashme
- 下一篇: mysql_常用命令