注:定理来自这篇博客,本文注重证明
向量基本运算
加法
向量 a ⃗ = ( x 1 , y 1 ) , b ⃗ = ( x 2 , y 2 ) \vec{a}=\left(x_1,y_1\right),\vec{b}=\left(x_2,y_2\right) a=(x1,y1),b=(x2,y2) 则 a ⃗ + b ⃗ = ( x 1 + x 2 , y 1 + y 2 ) \vec{a}+\vec{b}=(x_1+x_2,y_1+y_2) a+b=(x1+x2,y1+y2)
向量在加法中可以理解为一种移动效果,所以向量加法可以理解为下图:
叉积
叉积的计算
向量 a ⃗ = ( x 1 , y 1 ) , b ⃗ = ( x 2 , y 2 ) \vec{a}=\left(x_1,y_1\right),\vec{b}=\left(x_2,y_2\right) a=(x1,y1),b=(x2,y2) 则 a ⃗ × b ⃗ = x 1 y 2 − x 2 y 1 \vec{a}\times \vec{b}=x_1y_2-x_2y_1 a×b=x1y2−x2y1,证明如下:
首先,根据叉积的定义: a ⃗ × b ⃗ = ∣ a ⃗ ∣ ⋅ ∣ b ⃗ ∣ ⋅ sin ( θ ) \vec{a}\times \vec{b}=\left|\vec{a}\right|\cdot|\vec{b}|\cdot \sin\left(\theta\right) a×b=∣a∣⋅∣b∣⋅sin(θ)( ∣ a ⃗ ∣ \left|\vec{a}\right| ∣a∣表示 a ⃗ \vec{a} a 的模长,也就是长度, θ \theta θ 表示从 a ⃗ \vec{a} a 旋转到 b ⃗ \vec{b} b 经过的角度,顺时针为正,逆时针为负)
定义 a r c t a n 2 ( x , y ) arctan2(x,y) arctan2(x,y) 表示从 ( 1 , 0 ) (1,0) (1,0) 顺时针旋转至 ( x , y ) (x,y) (x,y) 经过的角度(返回弧度,取值为 0 ∼ 2 π 0\sim 2\pi 0∼2π)
则原式可以表示为 x 1 2 + y 1 2 ⋅ x 2 2 + y 2 2 ⋅ sin ( a r c t a n 2 ( x 2 , y 2 ) − a r c t a n 2 ( x 1 , y 1 ) ) \sqrt{x_1^2+y_1^2}\cdot\sqrt{x_2^2+y_2^2}\cdot\sin\left(arctan2\left(x_2,y_2\right)-arctan2(x_1,y_1)\right) x12+y12⋅x22+y22⋅sin(arctan2(x2,y2)−arctan2(x1,y1))
根据 sin ( a − b ) = sin ( a ) cos ( b ) − cos ( a ) sin ( b ) \sin(a-b)=\sin(a)\cos(b)-\cos(a)\sin(b) sin(a−b)=sin(a)cos(b)−cos(a)sin(b) 可得: 原式 = x 1 2 + y 1 2 ⋅ x 2 2 + y 2 2 ⋅ ( sin ( a r c t a n 2 ( x 2 , y 2 ) ) cos ( a r c t a n 2 ( x 1 , y 1 ) ) − cos ( a r c t a n 2 ( x 2 , y 2 ) ) sin ( a r c t a n 2 ( x 1 , y 1 ) ) ) 原式=\sqrt{x_1^2+y_1^2}\cdot\sqrt{x_2^2+y_2^2}\cdot\left(\sin(arctan2(x_2,y_2))\cos(arctan2(x_1,y_1))-\cos(arctan2(x_2,y_2))\sin(arctan2(x_1,y_1))\right) 原式=x12+y12⋅x22+y22⋅(sin(arctan2(x2,y2))cos(arctan2(x1,y1))−cos(arctan2(x2,y2))sin(arctan2(x1,y1)))
由于每个表示为 ( x , y ) (x,y) (x,y) 的向量放到平面直角坐标系上后实际上为:
通过 a r c t a n 2 ( x 2 , y 2 ) arctan2(x_2,y_2) arctan2(x2,y2) 我们得到了 ∠ B A D \angle{BAD} ∠BAD 所以 sin ( a r c t a n 2 ( x 2 , y 2 ) ) = sin ( ∠ B A D ) = B D A B = y x 2 + y 2 , cos ( a r c t a n 2 ( x 2 , y 2 ) ) = cos ( ∠ B A D ) = A D A B = x x 2 + y 2 \sin(arctan2(x_2,y_2))=\sin(\angle{BAD})=\frac{BD}{AB}=\frac{y}{\sqrt{x^2+y^2}},\cos(arctan2(x_2,y_2))=\cos(\angle{BAD})=\frac{AD}{AB}=\frac{x}{\sqrt{x^2+y^2}} sin(arctan2(x2,y2))=sin(∠BAD)=ABBD=x2+y2y,cos(arctan2(x2,y2))=cos(∠BAD)=ABAD=x2+