自己动手证明向量点乘和叉乘的几何意义

目标

对于游戏行业程序员来说,向量“点乘”和“叉乘”是非常熟悉的运算。从代码上看他们运算过程并不复杂:(以下代码选自UE4的“Vector.h”)

点乘就是各分量逐项相乘,最终得到了一个标量

FORCEINLINE float FVector::DotProduct(const FVector& A, const FVector& B)
{
	return X*V.X + Y*V.Y + Z*V.Z;
}

叉乘最终得到一个新的向量,虽然其运算现在看起来略显“奇怪”(不过,在随后的证明中可以看出其重要的几何意义):

FORCEINLINE FVector FVector::CrossProduct(const FVector& A, const FVector& B)
{
	return FVector
		(
		Y * V.Z - Z * V.Y,
		Z * V.X - X * V.Z,
		X * V.Y - Y * V.X
		);
}

即:
a ⃗ ⋅ b ⃗ = x a x b + y a y b + z a z b \vec{a}\cdot\vec{b} = x_ax_b+y_ay_b+z_az_b a b =xaxb+yayb+zazb

a ⃗ × b ⃗ = ( y a z b − z a y b , z a x b − x a z b , x a y b − y a x b ) \vec{a}\times\vec{b} = (y_az_b-z_ay_b,z_ax_b-x_az_b,x_ay_b-y_ax_b) a ×b =(yazbzayb,zaxbxazb,xaybyaxb)

他们各自都有重要的几何意义,经常会出现在有关空间计算的逻辑中,例如:

  • 标准化后向量点乘得到的值为夹角的余弦。这样,只要计算点乘,得到-1~ 0 ~1,便可知道两个向量之间方向的关系是相反 ~ 垂直 ~ 相同
  • 向量叉乘后得到的新向量一定和原先两个向量垂直。
  • 向量叉乘后得到的向量的模,其值为两个向量构成的三角形的面积的二倍。

向量点乘和叉乘的这些特性经常被使用,但是对于其中的数学原理我是模糊不清的,因此我想自己动手证明一下。

而为了让这些证明得更容易,我还需要在此之前证明其基于的一些定理。

1. 证明:勾股定理

定理:
对于一个直角三角形ABC,其中直角为∠BAC,有:
B C 2 = A B 2 + A C 2 BC^2=AB^2+AC^2 BC2=AB2+AC2


其证明网上有很多种,下面的方法据说来自于欧几里得的《几何原本》。
在这里插入图片描述
(图片来源勾股定理_百度百科

由于 三角形FBC正方形GFBA 同底等高,所以有:
S F B C × 2 = S G F B A S_{FBC}\times2=S_{GFBA} SFBC×2=SGFBA

由于 三角形FBC三角形ABD 为全等三角形,所以有:
S F B C = S A B D S_{FBC}=S_{ABD} SFBC=SABD

由于 三角形ABD矩形BDLK 同底等高,所以有:
S A B D × 2 = S B D L K S_{ABD}\times2=S_{BDLK} SABD×2=SBDLK

因此:
S G F B A = S F B C × 2 = S A B D × 2 = S B D L K S_{GFBA}=S_{FBC}\times2=S_{ABD}\times2=S_{BDLK} SGFBA=SFBC×2=SABD×2=SBDLK

同理:
S A C I H = S K L E C S_{ACIH}=S_{KLEC} SACIH=SKLEC

(即图中粉色正方形的面积等于粉色矩形的面积,蓝色正方形的面积等于蓝色矩形的面积)

因此:
B C 2 = S B D E C = S B D L K + S K L E C = S G F B A + S A C I H = A B 2 + A C 2 \begin{aligned} BC^2 & =S_{BDEC}\\ & =S_{BDLK}+S_{KLEC}\\ & =S_{GFBA}+S_{ACIH}\\ & = AB^2+AC^2\\ \end{aligned} BC2=SBDEC=SBDLK+SKLEC=SGFBA+SACIH=AB2+AC2

2. 证明:余弦定理

定理:
对于任意一个三角形ABC,有:
A B 2 = B C 2 + A C 2 − 2 B C ⋅ A C ⋅ c o s C AB^2=BC^2+AC^2-2BC \cdot AC \cdot cosC AB2=BC2+AC22BCACcosC


证明网上也有很多种,下面的方法据说也来自于欧几里得的《几何原本》。
在这里插入图片描述

在直角三角形ADC中,有:
A D = A C ⋅ s i n C AD = AC \cdot sinC AD=ACsinC

C D = A C ⋅ c o s C CD = AC \cdot cosC CD=ACcosC

在CB边上,有:
D B = B C − C D = B C − A C ⋅ c o s C DB= BC-CD=BC- AC \cdot cosC DB=BCCD=BCACcosC

在直角三角形ADB中,由勾股定理可得:
A B 2 = A D 2 + D B 2 = ( A C ⋅ s i n C ) 2 + ( B C − A C ⋅ c o s C ) 2 = A C 2 ⋅ s i n C 2 + B C 2 + A C 2 ⋅ c o s C 2 − 2 B C ⋅ A C ⋅ c o s C = B C 2 + A C 2 ⋅ s i n C 2 + A C 2 ⋅ c o s C 2 − 2 B C ⋅ A C ⋅ c o s C = B C 2 + A C 2 ( s i n C 2 + c o s C 2 ) − 2 B C ⋅ A C ⋅ c o s C = B C 2 + A C 2 − 2 B C ⋅ A C ⋅ c o s C \begin{aligned} AB^2 & =AD^2+DB^2\\ & =(AC \cdot sinC)^2+(BC- AC \cdot cosC)^2\\ & =AC^2\cdot sinC^2+BC^2+AC^2\cdot cosC^2-2BC \cdot AC \cdot cosC\\ & =BC^2+AC^2\cdot sinC^2+AC^2\cdot cosC^2-2BC \cdot AC \cdot cosC\\ & =BC^2+AC^2(sinC^2+cosC^2)-2BC \cdot AC \cdot cosC\\ & =BC^2+AC^2-2BC \cdot AC \cdot cosC\\ \end{aligned} AB2=AD2+DB2=(ACsinC)2+(BCACcosC)2=AC2sinC2+BC2+AC2cosC22BCACcosC=BC2+AC2sinC2+AC2cosC22BCACcosC=BC2+AC2(sinC2+cosC2)2BCACcosC=BC2+AC22BCACcosC

3. 证明:向量点乘的几何意义——结果为模相乘再乘夹角余弦

向量点乘的定义如下:
a ⃗ ⋅ b ⃗ = x a x b + y a y b + z a z b \vec{a}\cdot\vec{b} = x_ax_b+y_ay_b+z_az_b a b =xaxb+yayb+zazb

现在想证明的是:(其中θ为两向量夹角)
a ⃗ ⋅ b ⃗ = ∥ a ⃗ ∥ ⋅ ∥ b ⃗ ∥ c o s θ \vec{a}\cdot\vec{b} =\left \| \vec{a} \right \|\cdot\left \| \vec{b} \right \|cos\theta a b =a b cosθ


在证明前,先看一个算不上是“定理”的结论:
对于一个2维的向量(x,y),由于坐标系是垂直的,所以由勾股定理很容易能推导出
2 维 向 量 长 度 2 = x 2 + y 2 2维向量长度^2=x^2+y^2 22=x2+y2

对于一个3维的向量(x,y,z),也可以很容易能推导出:
3 维 向 量 长 度 2 = x 2 + y 2 + z 2 3维向量长度^2=x^2+y^2+z^2 32=x2+y2+z2


下面正式开始证明:
在这里插入图片描述

如果将向量a和向量b的起点放在一起,那么这两个向量终点之间的向量即为 a-b

而根据余弦定理,有:
∥ a ⃗ − b ⃗ ∥ 2 = ∥ a ⃗ ∥ 2 + ∥ b ⃗ ∥ 2 − 2 ∥ a ⃗ ∥ ⋅ ∥ b ⃗ ∥ c o s θ \left \| \vec{a} -\vec{b} \right \|^2=\left \| \vec{a} \right \|^2 +\left \| \vec{b} \right \|^2 -2\left \| \vec{a} \right \|\cdot\left \| \vec{b} \right \|cos\theta a b 2=a 2+b 22a b cosθ
写成分量的形式,就是:
( ( x a , y a , z a ) − ( x b , y b , z b ) ) 2 = ( x a , y a , z a ) 2 + ( x b , y b , z b ) 2 − 2 ∥ a ⃗ ∥ ⋅ ∥ b ⃗ ∥ c o s θ ((x_a,y_a,z_a)-(x_b,y_b,z_b))^2=(x_a,y_a,z_a)^2+(x_b,y_b,z_b)^2-2\left \| \vec{a} \right \|\cdot\left \| \vec{b} \right \|cos\theta ((xa,ya,za)(xb,yb,zb))2=(xa,ya,za)2+(xb,yb,zb)22a b cosθ

向量相减即各分量相减,即:
( x a − x b , y a − y b , z a − z b ) 2 = ( x a , y a , z a ) 2 + ( x b , y b , z b ) 2 − 2 ∥ a ⃗ ∥ ⋅ ∥ b ⃗ ∥ c o s θ (x_a-x_b,y_a-y_b,z_a-z_b)^2=(x_a,y_a,z_a)^2+(x_b,y_b,z_b)^2-2\left \| \vec{a} \right \|\cdot\left \| \vec{b} \right \|cos\theta (xaxb,yayb,zazb)2=(xa,ya,za)2+(xb,yb,zb)22a b cosθ

将平方的运算展开:
x a 2 + x b 2 − 2 x a x b + y a 2 + y b 2 − 2 y a y b + z a 2 + z b 2 − 2 z a z b = x a 2 + x b 2 + y a 2 + y b 2 + z a 2 + z b 2 − 2 ∥ a ⃗ ∥ ⋅ ∥ b ⃗ ∥ c o s θ x_a^2+x_b^2-2x_ax_b+y_a^2+y_b^2-2y_ay_b+z_a^2+z_b^2-2z_az_b=x_a^2+x_b^2+y_a^2+y_b^2+z_a^2+z_b^2-2\left \| \vec{a} \right \|\cdot\left \| \vec{b} \right \|cos\theta xa2+xb22xaxb+ya2+yb22yayb+za2+zb22zazb=xa2+xb2+ya2+yb2+za2+zb22a b cosθ

去掉等式两边重复项可得:
− 2 x a x b − 2 y a y b − 2 z a z b = − 2 ∥ a ⃗ ∥ ⋅ ∥ b ⃗ ∥ c o s θ -2x_ax_b-2y_ay_b-2z_az_b=-2\left \| \vec{a} \right \|\cdot\left \| \vec{b} \right \|cos\theta 2xaxb2yayb2zazb=2a b cosθ

约去-2得:
x a x b + y a y b + z a z b = ∥ a ⃗ ∥ ⋅ ∥ b ⃗ ∥ c o s θ x_ax_b+y_ay_b+z_az_b=\left \| \vec{a} \right \|\cdot\left \| \vec{b} \right \|cos\theta xaxb+yayb+zazb=a b cosθ

结合向量点乘的定义,则最后可知:
a ⃗ ⋅ b ⃗ = x a x b + y a y b + z a z b = ∥ a ⃗ ∥ ⋅ ∥ b ⃗ ∥ c o s θ \begin{aligned} \vec{a}\cdot\vec{b} & =x_ax_b+y_ay_b+z_az_b \\ & =\left \| \vec{a} \right \|\cdot\left \| \vec{b} \right \|cos\theta \\ \end{aligned} a b =xaxb+yayb+zazb=a b cosθ

4. 证明:向量叉乘的几何意义——结果与原先两个向量都垂直

向量叉乘的定义如下:
a ⃗ × b ⃗ = ( y a z b − z a y b , z a x b − x a z b , x a y b − y a x b ) \vec{a}\times\vec{b} = (y_az_b-z_ay_b,z_ax_b-x_az_b,x_ay_b-y_ax_b) a ×b =(yazbzayb,zaxbxazb,xaybyaxb)

由前面证明的向量点乘的几何意义可知,
如果能证明:

( a ⃗ × b ⃗ ) ⋅ a ⃗ = 0 (\vec{a}\times\vec{b} )\cdot \vec{a}=0 (a ×b )a =0

( a ⃗ × b ⃗ ) ⋅ b ⃗ = 0 (\vec{a}\times\vec{b} )\cdot \vec{b}=0 (a ×b )b =0

则意味着向量叉乘的结果向量,和原先两个向量的夹角的余弦值都为0,即夹角为90°,即与原先两个向量都垂直


而这个证明可以直接从算式中得出:
( a ⃗ × b ⃗ ) ⋅ a ⃗ = ( y a z b − z a y b , z a x b − x a z b , x a y b − y a x b ) ⋅ ( x a , y a , z a ) = y a z b x a − z a y b x a + z a x b y a − x a z b y a + x a y b z a − y a x b z a = ( y a z b x a − x a z b y a ) + ( x a y b z a − z a y b x a ) + ( z a x b y a − y a x b z a ) = 0 + 0 + 0 = 0 \begin{aligned} (\vec{a}\times\vec{b} )\cdot \vec{a} & = (y_az_b-z_ay_b,z_ax_b-x_az_b,x_ay_b-y_ax_b) \cdot (x_a,y_a,z_a) \\ & =y_az_bx_a-z_ay_bx_a+z_ax_by_a-x_az_by_a+x_ay_bz_a-y_ax_bz_a\\ & =(y_az_bx_a-x_az_by_a)+(x_ay_bz_a-z_ay_bx_a)+(z_ax_by_a-y_ax_bz_a)\\ & =0+0+0\\ & =0\\ \end{aligned} (a ×b )a =(yazbzayb,zaxbxazb,xaybyaxb)(xa,ya,za)=yazbxazaybxa+zaxbyaxazbya+xaybzayaxbza=(yazbxaxazbya)+(xaybzazaybxa)+(zaxbyayaxbza)=0+0+0=0

( a ⃗ × b ⃗ ) ⋅ b ⃗ = ( y a z b − z a y b , z a x b − x a z b , x a y b − y a x b ) ⋅ ( x b , y b , z b ) = y a z b x b − z a y b x b + z a x b y b − x a z b y b + x a y b z b − y a x b z b = ( y a z b x b − y a x b z b ) + ( z a x b y b − z a y b x b ) + ( x a y b z b − x a z b y b ) = 0 + 0 + 0 = 0 \begin{aligned} (\vec{a}\times\vec{b} )\cdot \vec{b} & = (y_az_b-z_ay_b,z_ax_b-x_az_b,x_ay_b-y_ax_b) \cdot (x_b,y_b,z_b) \\ & =y_az_bx_b-z_ay_bx_b+z_ax_by_b-x_az_by_b+x_ay_bz_b-y_ax_bz_b\\ & =(y_az_bx_b-y_ax_bz_b)+(z_ax_by_b-z_ay_bx_b)+(x_ay_bz_b-x_az_by_b)\\ & =0+0+0\\ & =0\\ \end{aligned} (a ×b )b =(yazbzayb,zaxbxazb,xaybyaxb)(xb,yb,zb)=yazbxbzaybxb+zaxbybxazbyb+xaybzbyaxbzb=(yazbxbyaxbzb)+(zaxbybzaybxb)+(xaybzbxazbyb)=0+0+0=0

5. 证明:向量叉乘的几何意义——结果的模为原先两向量的模相乘再乘夹角正弦

向量叉乘的定义如下:
a ⃗ × b ⃗ = ( y a z b − z a y b , z a x b − x a z b , x a y b − y a x b ) \vec{a}\times\vec{b} = (y_az_b-z_ay_b,z_ax_b-x_az_b,x_ay_b-y_ax_b) a ×b =(yazbzayb,zaxbxazb,xaybyaxb)

现在想证明的是:(其中θ为两向量夹角)
∥ a ⃗ × b ⃗ ∥ = ∥ a ⃗ ∥ ∥ b ⃗ ∥ s i n θ \left \|\vec{a}\times\vec{b}\right \| =\left \| \vec{a} \right \|\left \| \vec{b} \right \|sin\theta a ×b =a b sinθ


(方法来自于《3D游戏与计算机图形学中的数学方法》)

取向量叉乘结果的平方,逐步展开:
∥ a ⃗ × b ⃗ ∥ 2 = ( y a z b − z a y b , z a x b − x a z b , x a y b − y a x b ) 2 = ( y a z b − z a y b ) 2 + ( z a x b − x a z b ) 2 + ( x a y b − y a x b ) 2 = ( y a 2 z b 2 + z a 2 y b 2 − 2 y a z b z a y b ) + ( z a 2 x b 2 + x a 2 z b 2 − 2 z a x b x a z b ) + ( x a 2 y b 2 + y a 2 x b 2 − 2 x a y b y a x b ) = ( y a 2 z b 2 + z a 2 y b 2 + z a 2 x b 2 + x a 2 z b 2 + x a 2 y b 2 + y a 2 x b 2 ) + ( − 2 y a z b z a y b − 2 z a x b x a z b − 2 x a y b y a x b ) \begin{aligned} \left \|\vec{a}\times\vec{b}\right \| ^2 & = (y_az_b-z_ay_b,z_ax_b-x_az_b,x_ay_b-y_ax_b)^2 \\ & = (y_az_b-z_ay_b)^2+(z_ax_b-x_az_b)^2+(x_ay_b-y_ax_b)^2 \\ & = (y_a^2z_b^2+z_a^2y_b^2-2y_az_bz_ay_b)+(z_a^2x_b^2+x_a^2z_b^2-2z_ax_bx_az_b)+(x_a^2y_b^2+y_a^2x_b^2-2x_ay_by_ax_b) \\ & = (y_a^2z_b^2+z_a^2y_b^2+z_a^2x_b^2+x_a^2z_b^2+x_a^2y_b^2+y_a^2x_b^2)+(-2y_az_bz_ay_b-2z_ax_bx_az_b-2x_ay_by_ax_b)\\ \end{aligned} a ×b 2=(yazbzayb,zaxbxazb,xaybyaxb)2=(yazbzayb)2+(zaxbxazb)2+(xaybyaxb)2=(ya2zb2+za2yb22yazbzayb)+(za2xb2+xa2zb22zaxbxazb)+(xa2yb2+ya2xb22xaybyaxb)=(ya2zb2+za2yb2+za2xb2+xa2zb2+xa2yb2+ya2xb2)+(2yazbzayb2zaxbxazb2xaybyaxb)

下面便出现了我觉得这种证明方法比较“魔法”的一个操作,对于等号右侧:
左部分先加上了 ( x a 2 x b 2 + y a 2 y b 2 + z a 2 z b 2 ) (x_a^2x_b^2+y_a^2y_b^2+z_a^2z_b^2) (xa2xb2+ya2yb2+za2zb2),右部分再减去它。一番“折腾”之后,虽然结果未受影响,但是却让左部分凑出了原先两向量的模的形式,右部分凑出了向量点乘的形式,具体来看:
∥ a ⃗ × b ⃗ ∥ 2 = ( y a 2 z b 2 + z a 2 y b 2 + z a 2 x b 2 + x a 2 z b 2 + x a 2 y b 2 + y a 2 x b 2 ) + ( x a 2 x b 2 + y a 2 y b 2 + z a 2 z b 2 ) + ( − 2 y a z b z a y b − 2 z a x b x a z b − 2 x a y b y a x b ) − ( x a 2 x b 2 + y a 2 y b 2 + z a 2 z b 2 ) = ( y a 2 z b 2 + z a 2 y b 2 + z a 2 x b 2 + x a 2 z b 2 + x a 2 y b 2 + y a 2 x b 2 + x a 2 x b 2 + y a 2 y b 2 + z a 2 z b 2 ) − ( x a 2 x b 2 + y a 2 y b 2 + z a 2 z b 2 + 2 y a z b z a y b + 2 z a x b x a z b + 2 x a y b y a x b ) = ( x a 2 + y a 2 + z a 2 ) ( x b 2 + y b 2 + z b 2 ) − ( x a x b + y a y b + z a z b ) 2 = ∥ a ⃗ ∥ 2 ∥ b ⃗ ∥ 2 − ( a ⃗ ⋅ b ⃗ ) 2 \begin{aligned} \left \|\vec{a}\times\vec{b}\right \| ^2 & = (y_a^2z_b^2+z_a^2y_b^2+z_a^2x_b^2+x_a^2z_b^2+x_a^2y_b^2+y_a^2x_b^2)+(x_a^2x_b^2+y_a^2y_b^2+z_a^2z_b^2)+(-2y_az_bz_ay_b-2z_ax_bx_az_b-2x_ay_by_ax_b)-(x_a^2x_b^2+y_a^2y_b^2+z_a^2z_b^2)\\ & = (y_a^2z_b^2+z_a^2y_b^2+z_a^2x_b^2+x_a^2z_b^2+x_a^2y_b^2+y_a^2x_b^2+x_a^2x_b^2+y_a^2y_b^2+z_a^2z_b^2)-(x_a^2x_b^2+y_a^2y_b^2+z_a^2z_b^2+2y_az_bz_ay_b+2z_ax_bx_az_b+2x_ay_by_ax_b)\\ & = (x_a^2+y_a^2+z_a^2)(x_b^2+y_b^2+z_b^2)-(x_ax_b+y_ay_b+z_az_b)^2\\ & =\left \| \vec{a} \right \|^2\left \| \vec{b} \right \|^2-(\vec{a}\cdot\vec{b})^2\\ \end{aligned} a ×b 2=(ya2zb2+za2yb2+za2xb2+xa2zb2+xa2yb2+ya2xb2)+(xa2xb2+ya2yb2+za2zb2)+(2yazbzayb2zaxbxazb2xaybyaxb)(xa2xb2+ya2yb2+za2zb2)=(ya2zb2+za2yb2+za2xb2+xa2zb2+xa2yb2+ya2xb2+xa2xb2+ya2yb2+za2zb2)(xa2xb2+ya2yb2+za2zb2+2yazbzayb+2zaxbxazb+2xaybyaxb)=(xa2+ya2+za2)(xb2+yb2+zb2)(xaxb+yayb+zazb)2=a 2b 2(a b )2

而根据前面证明的向量点乘的几何意义可知:
a ⃗ ⋅ b ⃗ = ∥ a ⃗ ∥ ⋅ ∥ b ⃗ ∥ c o s θ \vec{a}\cdot\vec{b} =\left \| \vec{a} \right \|\cdot\left \| \vec{b} \right \|cos\theta a b =a b cosθ

所以:
∥ a ⃗ × b ⃗ ∥ 2 = ∥ a ⃗ ∥ 2 ∥ b ⃗ ∥ 2 − ∥ a ⃗ ∥ 2 ∥ b ⃗ ∥ 2 ⋅ ( c o s θ ) 2 = ∥ a ⃗ ∥ 2 ∥ b ⃗ ∥ 2 ⋅ ( 1 − ( c o s θ ) 2 ) \begin{aligned} \left \|\vec{a}\times\vec{b}\right \| ^2 & = \left \| \vec{a} \right \|^2\left \| \vec{b} \right \|^2-\left \| \vec{a} \right \|^2\left \| \vec{b} \right \|^2\cdot (cos\theta)^2\\ & = \left \| \vec{a} \right \|^2\left \| \vec{b} \right \|^2\cdot (1- (cos\theta)^2) \end{aligned} a ×b 2=a 2b 2a 2b 2(cosθ)2=a 2b 2(1(cosθ)2)

又因为【 ( c o s θ ) 2 + ( s i n θ ) 2 = 1 (cos\theta)^2+(sin\theta)^2=1 (cosθ)2+(sinθ)2=1 】一定成立
所以:
∥ a ⃗ × b ⃗ ∥ 2 = ∥ a ⃗ ∥ 2 ∥ b ⃗ ∥ 2 ⋅ ( s i n θ ) 2 \left \|\vec{a}\times\vec{b}\right \| ^2= \left \| \vec{a} \right \|^2\left \| \vec{b} \right \|^2\cdot (sin\theta)^2 a ×b 2=a 2b 2(sinθ)2

开方得:
∥ a ⃗ × b ⃗ ∥ = ∥ a ⃗ ∥ ∥ b ⃗ ∥ ⋅ s i n θ \left \|\vec{a}\times\vec{b}\right \|= \left \| \vec{a} \right \|\left \| \vec{b} \right \|\cdot sin\theta a ×b =a b sinθ

6. 证明:向量叉乘的几何意义——结果的模为原先两向量构成三角形的面积二倍

在前者证明之后,此证明变得很容易,因为:

∥ b ⃗ ∥ ⋅ s i n θ \left \| \vec{b} \right \|\cdot sin\theta b sinθ 的长度就是以a为底边的三角形的高度:

在这里插入图片描述
所以:
∥ a ⃗ × b ⃗ ∥ = ∥ a ⃗ ∥ ∥ b ⃗ ∥ ⋅ s i n θ = ( ∥ a ⃗ ∥ ) × ( ∥ b ⃗ ∥ ⋅ s i n θ ) = 底 × 高 = 2 × ( 底 × 高 2 ) = 2 × S 三 角 形 \begin{aligned} \left \|\vec{a}\times\vec{b}\right \| & = \left \| \vec{a} \right \|\left \| \vec{b} \right \|\cdot sin\theta\\ & = (\left \| \vec{a} \right \|)\times (\left \| \vec{b} \right \|\cdot sin\theta)\\ & = 底 \times 高\\ & = 2\times (\frac{底 \times 高}{2})\\ & = 2\times S_{三角形} \end{aligned} a ×b =a b sinθ=(a )×(b sinθ)=×=2×(2×)=2×S

总结

向量点乘

定义

a ⃗ ⋅ b ⃗ = x a x b + y a y b + z a z b \vec{a}\cdot\vec{b} = x_ax_b+y_ay_b+z_az_b a b =xaxb+yayb+zazb

几何意义与作用举例

a ⃗ ⋅ b ⃗ = ∥ a ⃗ ∥ ⋅ ∥ b ⃗ ∥ c o s θ \vec{a}\cdot\vec{b} =\left \| \vec{a} \right \|\cdot\left \| \vec{b} \right \|cos\theta a b =a b cosθ

  • 可以算出向量的夹角
  • 可以直接根据此值判断两向量方向的关系:-1~ 0 ~1对应于相反 ~ 垂直 ~ 相同

向量叉乘

定义

a ⃗ × b ⃗ = ( y a z b − z a y b , z a x b − x a z b , x a y b − y a x b ) \vec{a}\times\vec{b} = (y_az_b-z_ay_b,z_ax_b-x_az_b,x_ay_b-y_ax_b) a ×b =(yazbzayb,zaxbxazb,xaybyaxb)

几何意义与作用举例1

结果的向量与原先两个向量都垂直

  • 可以用来快速算出两个向量确定的一个平面的法向量方向。
几何意义与作用举例2

∥ a ⃗ × b ⃗ ∥ = ∥ a ⃗ ∥ ∥ b ⃗ ∥ s i n θ \left \|\vec{a}\times\vec{b}\right \| =\left \| \vec{a} \right \|\left \| \vec{b} \right \|sin\theta a ×b =a b sinθ

  • 可以用来在已知顶点位置情况下,快速算出空间内一个三角形的面积。
  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值