矢量点乘、叉乘的意义


矢量的点乘:(a,b,c)  •  (x,y,z) = ax + by + cz

矢量点乘的结果是标量,其其中之一的几何意义就是投影(projection)

同时,点乘可以让我们了解两个矢量的方向关系,是相反,或者同向。

假设,有一个单位矢量a和一个不限长度的矢量b,现在,我们希望得到b在平行于a的一条直线上的投影,那么,我们就可以用点乘ab来得到ba方向上有符号的投影。如下图:

        

关于为什么是投影的推导过程:https://blog.csdn.net/u012419410/article/details/41865119

投影的值可能是负数,如下图:

 

如果a不是一个单位矢量呢?这很容易想到,任何两个矢量的点乘ab等同于ba方向上的投影值,再乘以a的长度。

 

点乘的公式:1、a= axbx + ayby +azbz

      2、ab = |a||b|cosø

 

点乘的性质:1、(ka)•b = a•(kb) = k(ab)

      2、a•(b+c) = ab + ac

      3、v•v = vxvx + vyvy + vzvz = |v|^2

 

关于公式2,Unity+Shader入门精要书中,以投影的结论来反推出这个公式,但其实在推导投影的过程中,也用到了这个公式,所以书中的推导有些问题(如有误请直接指出,谢谢!)。

 

矢量的叉乘:也称为外积,与点乘不同的是,叉乘的结果是一个矢量,而非标量。

其中,a x b = (ax,ay,az) x (bx,by,bz) = (aybz - azby , azbx - axbz, axby - aybx) 

     |a b| = |a||b|sinø

叉乘有什么用呢?最常见的应用就是计算垂直与一个平面、三角形的矢量。另外,还可以用于判断三角面片的朝向。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM