兩個向量之間的夾角公式 奇技淫巧系列 向量叉乘

2021-10-14 00:26:16 字數 1479 閱讀 1654

​一般我們在解決立體幾何題目時會選擇建立座標系,因為這樣做比較保險也有固定套路。很多時候這些題目要求你計算某乙個面的法向量(normal vector),這在高中階段也是有固定方法的,我們這裡想要介紹的是一種更高階也更迅速的方法,也就是引入向量叉乘(cross product,「向量」同物理中的「向量」概念,一直想不通為啥數學和物理用不一樣的名字,英文都是vector)這一概念。

我們都學過向量的標量積,也就是所謂的點乘(dot product),兩個向量做標量積後得到的是乙個標量。我們這裡定義一種新的向量運算,也就是向量積或者叫叉乘:

其運算結果仍是乙個向量,我們記之為向量c,它的模定義為:

其中θ為向量a和向量b的夾角,如下圖所示,c的模即以ab為兩條邊的平行四邊形的面積。

c的方向定義為垂直於ab所構成的平面,並且abc構成右手螺旋定則,也就是右手四指方向從a轉向b,大拇指即得到c方向。定義了這一新的運算之後,我們從這個定義出發能證明以下幾條重要性質:

前兩條性質根據定義一眼就能看出,第三條叉乘的分配律是非常重要的性質,證明也比較困難,我們不打算贅述了。

那麼在三維座標系中,ab擁有了座標表示後,c的座標該怎麼計算呢?記x,y,z軸正方向的單位向量分別為ijk,則有:

則根據叉乘的上述三條性質我們得到c為:

第二個等號我們運用了性質3,第三個等號我們運用了性質1和性質2,最後乙個等號則運用了簡單的ijk之間的叉乘關係。這一計算公式讓我們直接能夠從ab的座標表示得到c的座標表示,用行列式可以更簡潔地表示並方便記憶:

有了這個公式,對於任意乙個面的法向量,我們總可以選取該面上的兩個不共線向量來直接叉乘出來,一般解題中直接就選該面的兩條邊上的單位向量就行了。

警告:這個方法比高中階段介紹的方程求解法要方便許多,但是用這種方法解題萬一出錯了很可能得不到求解法向量這一步的過程分。

乙個va list的奇技淫巧

有時候需要使用vsscanf接收void 的指標列表,但是vsscanf接收的是va list。抓耳撓腮一晚上,終於解決 void vssf pnt char str,char format,int main void va list太難用了。這裡用到va arg的乙個型別轉換的方法,來解決問題。目...

python求兩個向量的夾角

import numpy as np x np.array 3,5 y np.array 4,2 兩個向量 lx np.sqrt x.dot x ly np.sqrt y.dot y 相當於勾股定理,求得斜線的長度 cos angle x.dot y lx ly 求得cos sita的值再反過來計算...

向量 點積應用 兩個向量夾角

點積最重要的應用是計算兩個向量的夾角,或者兩條直線的夾角。圖給出了二維的情況,其中向量b和向量c與x軸的夾角分別為b,c,從基本三角函式可得 b b cosb,b sinb b 表示b的模就是b的長度 c c cosc,c sinc 將上式代入點積等式,將它們的對應的分量相乘,再把結果相加,於是得到...