矢量點乘、叉乘的意義


矢量的點乘:(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