点积

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

 

点积(内积)运算于两个向量,返回一个标量值。这是一种计算两个向量之间角余弦值的简单方法。

下面的等式展示了怎么计算向量v1,v2的的内积。点积操作通常使用符号“.”表示。

v1 . v2 = v1x*v2x + v1y*v2y + v1z*v2z

向量v1和v2之间角的余弦值之间的关系如下:

v1 . v2 = |v1| |v2| * cos(a)

如上所示,我们也可以知道的是,如果任何一个向量是零向量的话,两个向量的点积结果就是0。如果向量正交的话,它们的夹角就是90度啦。

下面是点积操作的一些特性:(满足交换律大笑

v1 . v2 = v2 . v1
        v1 . (v2 + v3) = (v1 . v2) + (v1 . v3)

同样,可以用C语言的宏去定义点积:

#define innerProduct(v,q) \

        ((v)[0] * (q)[0] + \
        (v)[1] * (q)[1] + \
        (v)[2] * (q)[2])
posted @ 2014-12-04 21:25  byhj  阅读(270)  评论(0编辑  收藏  举报