码迷,mamicode.com
首页 > 其他好文 > 详细

差乘积

时间:2014-12-04 21:22:06      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   使用   sp   on   div   

译自:http://www.lighthouse3d.com/tutorials/maths/vector-cross-product/

 

      两个向量差乘积得到一个特殊的向量,这个向量指向于(就是垂直)两个向量确定的平面。假设向量v1,v2在XZ平面上,假设v1到v2是逆时针方向的话,那么差乘积向量方向向上,反之方向向下。差乘积可以使用于许多方面,光照计算或者计算向量之间的夹角。

 bubuko.com,布布扣

下面的等式展示了计算v1和v2差乘积v的必要步骤。差乘积通常用符号“X”来表示。

v = v1 x v2

    v = [vx,vy,vz] where,

        vx = v1y * v2z - v1z * v2y

        vy = v1z * v2x - v1x * v2z

        vz = v1x * v2y - v1y * v2x

需要注意的是差乘积不符合交换律,事实上它是交换后取反的。下面是差乘积的一些特性:

v1 x v2 = - (v2 x v1)
    k * (v1 x v2) = v1 x (k*v2) = (k*v1) x v2
    v1 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];

差乘积

标签:style   blog   http   color   os   使用   sp   on   div   

原文地址:http://www.cnblogs.com/byhj/p/4143850.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!