本文涉及知识点
4 向量的外积(叉乘)
作用在A点上的力F关于支点O的力矩M的大小为
∣ M ∣ = ∣ F 2 ∣ ∣ O A ⃗ ∣ = ∣ F ∣ ∣ O A ⃗ ∣ sin < F , O A ⃗ > |M|=|F_2||\vec {OA}|=|F||\vec {OA}|\sin<F,\vec {OA}> ∣M∣=∣F2∣∣OA ∣=∣F∣∣OA ∣sin<F,OA >力矩M的方向为:让右手四指从 O A ⃗ 弯向 F (转角小于 180 度),则大拇指指向 M 的方向 \vec{OA}弯向F(转角小于180度),则大拇指指向M的方向 OA 弯向F(转角小于180度),则大拇指指向M的方向。
4.1 向量的外积定义
∣ a ⃗ × b ⃗ : = ∣ a ∣ ∣ b ∣ sin < a ⃗ , b ⃗ > 方向遵守右手定理 |\vec a \times \vec b :=|a||b|\sin <\vec a,\vec b> 方向遵守右手定理 ∣a ×b :=∣a∣∣b∣sin<a ,b >方向遵守右手定理
4.2 向量的外积的几何意义,平面的定向
向量外积=平行四边形的有向面积。
4.3 向量的外积的运算规律
命题1.9 :若 a ⃗ ≠ 0 ,则 a ⃗ × b ⃗ = a × b 2 ,其中 b 2 是 b 沿方向 a 的外投影。 \vec a \neq 0,则\vec a\times \vec b=a \times b_2,其中b_2是b沿方向a的外投影。 a =0,则a ×b =a×b2,其中b2是b沿方向a的外投影。
命题1.10 设 e ⃗ \vec e e 是单位向量, b ⃗ ⊥ e ⃗ , 则 e ⃗ × b 等于 b 按右手螺旋规则绕 e ⃗ 旋转 90 ∘ 得到的向量 b ′ \vec b \perp \vec e,则\vec e \times b等于b按右手螺旋规则绕\vec e旋转90^{\circ}得到的向量b' b ⊥e ,则e ×b等于b按右手螺旋规则绕e 旋转90∘得到的向量b′
推论1.4 若O; e 1 , e 2 , e 3 e_1,e_2,e_3 e1,e2,e3为右手直角坐标系,则有 e 1 ⃗ × e 2 ⃗ = e 3 ⃗ , e 2 ⃗ × e 3 ⃗ = e 1 ⃗ , e 3 ⃗ × e 1 ⃗ = e 2 ⃗ \vec {e_1} \times \vec {e_2}=\vec {e_3},\vec {e_2} \times \vec {e_3}=\vec {e_1},\vec {e_3} \times \vec {e_1}=\vec {e_2} e1 ×e2 =e3 ,e2 ×e3 =e1 ,e3 ×e1 =e2
定理1.7 外积适合下列运算规律:对于任意向量 a ⃗ , b ⃗ , c ⃗ 和任意实数 λ ,有 \vec a,\vec b,\vec c和任意实数\lambda,有 a ,b ,c 和任意实数λ,有
a ⃗ × b = − b ⃗ × a 反交换律 ( λ a ⃗ ) × b ⃗ = λ ( a ⃗ × b ⃗ ) a ⃗ × ( b ⃗ + c ⃗ ) = a ⃗ × b ⃗ + a ⃗ × c ⃗ ( 左分配律 ) ( b ⃗ + c ⃗ ) × a ⃗ = b ⃗ × a ⃗ + c ⃗ × a ⃗ \vec a \times b = -\vec b \times a 反交换律\\ (\lambda\vec a)\times \vec b=\lambda(\vec a\times \vec b)\\ \vec a\times(\vec b+\vec c)=\vec a \times \vec b+\vec a \times \vec c(左分配律)\\ (\vec b+\vec c)\times \vec a=\vec b \times \vec a+\vec c \times \vec a a ×b=−b ×a反交换律(λa )×b =λ(a ×b )a ×(b +c )=a ×b +a ×c (左分配律)(b +c )×a =b ×a +c ×a
4.4 用坐标计算向量的外积
先取一个仿射标架O;**e1** ,**e2** ,**e3** ,设a ,b 的坐标分别是(a1,a2,a3),(b1,b2,b3)。则:
a ⃗ × b ⃗ = ( a 1 e 1 ⃗ + a 2 e 2 ⃗ + a 3 e 3 ⃗ ) × ( b 1 e 1 ⃗ + b 2 e 2 ⃗ + b 3 e 3 ⃗ ) \vec a \times \vec b=(a1\vec {e1}+a2\vec{e2}+a3\vec{e3})\times(b1\vec {e1}+b2\vec{e2}+b3\vec{e3}) a ×b =(a1e1 +a2e2 +a3e3 )×(b1e1 +b2e2 +b3e3 )
= ( a 1 b 2 − a 2 b 1 ) e 1 ⃗ × e 2 ⃗ + ( a 3 b 1 − a 1 b 3 ) e 3 ⃗ × e 1 ⃗ + ( a 2 b 3 − a 3 b 2 ) e 2 ⃗ × e 3 ⃗ =(a1b2-a2b1)\vec{e1}\times \vec{e2}+(a3b1-a1b3)\vec{e3}\times\vec{e1}+(a2b3-a3b2)\vec{e2}\times\vec{e3} =(a1b2−a2b1)e1 ×e2 +(a3b1−a1b3)e3 ×e1 +(a2b3−a3b2)e2 ×e3
无论仿射标架,还是直角坐标系。 e 1 ⃗ × e 1 ⃗ = e 2 ⃗ × e 2 ⃗ = e 3 ⃗ × e 3 ⃗ = 0 \vec{e1} \times \vec{e1}=\vec{e2} \times \vec{e2}=\vec{e3} \times \vec{e3}=0 e1 ×e1 =e2 ×e2 =e3 ×e3 =0
在右手直角坐标系中: e 1 ⃗ × e 2 ⃗ = e 3 ⃗ , e 3 ⃗ × e 1 ⃗ = e 2 ⃗ , e 2 ⃗ × e 3 ⃗ = e 1 ⃗ \vec{e1}\times\vec{e2}=\vec{e3},\vec{e3}\times\vec{e1}=\vec{e2},\vec{e2}\times\vec{e3}=\vec{e1} e1 ×e2 =e3 ,e3 ×e1 =e2 ,e2 ×e3 =e1
定理1.8 :在右手直角坐标系中: a ⃗ , b ⃗ \vec a,\vec b a ,b 的坐标分别为:(a1,a2,a3),(b1,b2,b3),则 a ⃗ × b ⃗ \vec a \times \vec b a ×b 的坐标为:
( ∣ a 2 a 3 b 2 b 3 ∣ , − ∣ a 1 a 3 b 1 b 3 ∣ , ∣ a 1 a 2 b 1 b 2 ∣ ) (\begin{vmatrix} a2 &a3\\ b2 & b3\\ \end{vmatrix},-\begin{vmatrix} a1 &a3\\ b1 & b3\\ \end{vmatrix},\begin{vmatrix} a1 &a2\\ b1 & b2\\ \end{vmatrix}) ( a2b2a3b3 ,− a1b1a3b3 , a1b1a2b2 )
即坐标分量为下述矩阵,第一行各列代数余子式:
( 1 1 1 a 1 a 2 a 3 b 1 b 2 b 3 ) \begin{pmatrix} 1 & 1 & 1\\ a1 & a2 &a3\\ b1 & b2 & b3\\ \end{pmatrix} 1a1b11a2b21a3b3
4.5 二重外积
命题1.11 :对任意向量 a ⃗ , b ⃗ , c ⃗ \vec a,\vec b,\vec c a ,b ,c 有: a ⃗ × ( b ⃗ × c ⃗ ) = ( a ⃗ ⋅ c ⃗ ) b ⃗ − ( a ⃗ ⋅ b ⃗ ) c ⃗ \vec a \times(\vec b \times \vec c)=(\vec a \cdot \vec c)\vec b-(\vec a \cdot \vec b)\vec c a ×(b ×c )=(a ⋅c )b −(a ⋅b )c ,此公式称为二重外积。
证明 : 取一个右手坐标系,设 a ⃗ ( a 1 , a 2 , a 3 ) , b ⃗ ( b 1 , b 2 , b 3 ) , c ⃗ ( c 1 , c 2 , c 3 ) 。设 b ⃗ × c ⃗ 的坐标为 ( d 1 , d 2 , d 3 ) ,设 a ⃗ × ( b ⃗ × c ) 的坐标为 ( h 1 , h 2 , h 3 ) \vec a(a1,a2,a3),\vec b(b1,b2,b3),\vec c(c1,c2,c3)。设\vec b \times \vec c的坐标为(d1,d2,d3),设\vec a \times(\vec b \times c)的坐标为(h1,h2,h3) a (a1,a2,a3),b (b1,b2,b3),c (c1,c2,c3)。设b ×c 的坐标为(d1,d2,d3),设a ×(b ×c)的坐标为(h1,h2,h3)
h1 = a 2 d 3 − a 3 d 2 = a 2 ( b 1 c 2 − b 2 c 1 ) − a 3 ( b 3 c 1 − b 1 c 3 ) = b 1 ( a 2 c 2 + a 3 c 3 ) − c 1 ( a 2 b 2 + a 3 b 3 ) a_2d_3-a_3d_2=a_2(b_1c_2-b_2c_1)-a_3(b_3c_1-b_1c_3)=b_1(a_2c_2+a_3c_3)-c_1(a_2b_2+a_3b_3) a2d3−a3d2=a2(b1c2−b2c1)−a3(b3c1−b1c3)=b1(a2c2+a3c3)−c1(a2b2+a3b3)
= b 1 ( a ⋅ c − a 1 c 1 ) − c 1 ( a ⋅ b − a 1 b 1 ) =b_1(a \cdot c - a_1c_1)-c_1(a \cdot b - a_1b_1) =b1(a⋅c−a1c1)−c1(a⋅b−a1b1)
= ( a ⋅ c ) b 1 − ( a ⋅ b ) c 1 =(a \cdot c)b_1 - (a\cdot b)c_1 =(a⋅c)b1−(a⋅b)c1。 a 1 b 1 c 1 a_1b_1c_1 a1b1c1抵消。
同理可得: h 2 = ( a ⃗ ⋅ c ⃗ ) b 2 − ( a ⃗ ⋅ b ⃗ ) c 2 , h 3 = ( a ⃗ ⋅ c ⃗ ) b 3 − ( a ⃗ ⋅ b ⃗ ) c 3 h_2=(\vec a \cdot \vec c)b_2-(\vec a \cdot \vec b)c_2,h_3=(\vec a \cdot \vec c)b_3-(\vec a \cdot \vec b)c_3 h2=(a ⋅c )b2−(a ⋅b )c2,h3=(a ⋅c )b3−(a ⋅b )c3
5 向量的混合积
5.1 向量的混合积的几何意义和性质
a ⃗ × b ⃗ \vec a \times \vec b a ×b 是两个向量围成的平行四边形的有向面积,即向量 a ⃗ , b ⃗ , c ⃗ \vec a,\vec b,\vec c a ,b ,c 组成平行六面体的低面积。
令 d ⃗ \vec d d 是底面的单位法向量,则 d ⋅ c d \cdot c d⋅c是高。故平行六面体的定向体积是: a ⃗ × b ⃗ ⋅ c \vec a \times \vec b \cdot c a ×b ⋅c,即混合积。
定向体积为正, ∠ < a ⃗ × b ⃗ , c ⃗ > \angle<\vec a \times \vec b,\vec c> ∠<a ×b ,c >是锐角,遵守右手坐标系。
命题1.12 :三个向量 a ⃗ , b ⃗ , c ⃗ \vec a,\vec b,\vec c a ,b ,c 共面的充分必要条件是混合积为0。
5.2 用坐标计算向量的混合积
取一个仿射标架O;**e1** ,**e2** ,**e3** 。
小知识一 : k e 1 ⃗ × e 2 ⃗ ⋅ e 1 ⃗ = 0 k \vec{e1}\times \vec{e2} \cdot \vec {e1}=0 ke1 ×e2 ⋅e1 =0因为三个向量共面,故平行六面体的体积为0。
小知识二 : e 1 ⃗ × e 2 ⃗ ⋅ e 3 ⃗ = e 2 ⃗ × e 3 ⃗ ⋅ e 1 ⃗ = e 3 ⃗ × e 1 ⃗ ⋅ e 2 ⃗ \vec {e1}\times \vec{e2} \cdot \vec{e3}=\vec {e2}\times \vec{e3} \cdot \vec{e1}=\vec {e3}\times \vec{e1} \cdot \vec{e2} e1 ×e2 ⋅e3 =e2 ×e3 ⋅e1 =e3 ×e1 ⋅e2 同一个平行六面体的定向体积,且方向相同。交换任意两行,行列式的值变成相反数。
设a ,b ,c 的坐标分别为(a1,a2,a3),(b1,b2,b3),(c1,c2,c3)。则:
a ⃗ × b ⃗ ⋅ c ⃗ \vec a \times \vec b \cdot \vec c a ×b ⋅c
= ( a 1 b 2 − a 2 b 1 ) e 1 ⃗ × e 2 ⃗ + ( a 3 b 1 − a 1 b 3 ) e 3 ⃗ × e 1 ⃗ + ( a 2 b 3 − a 3 b 2 ) e 2 ⃗ × e 3 ⃗ =(a_1b_2-a_2b_1)\\vec {e1}\\times \\vec{e2} +(a_3b_1-a_1b_3)\\vec {e3}\\times \\vec{e1} + (a_2b_3-a_3b_2)\\vec {e2}\\times \\vec{e3} =(a1b2−a2b1)e1 ×e2 +(a3b1−a1b3)e3 ×e1 +(a2b3−a3b2)e2 ×e3
⋅ ( c 1 e 1 + c − 2 e 2 + c 3 e 3 ) \cdot (c_1e_1+c-2e_2+c_3e_3) ⋅(c1e1+c−2e2+c3e3)
= ( a 1 b 2 − a 2 b 1 ) c 3 e 1 ⃗ e 2 ⃗ ⋅ e 3 ⃗ + ( a 3 b 1 − a 1 b 3 ) c 2 e 2 ⃗ e 3 ⃗ ⋅ e 1 ⃗ + ( a 2 b 3 − a 3 b 2 ) c 1 e 2 ⃗ e 3 ⃗ ⋅ e 1 ⃗ =(a_1b_2-a_2b_1)c_3\vec{e1}\vec{e2}\cdot \vec {e3}+(a_3b_1-a_1b_3)c_2\vec{e2}\vec{e3}\cdot \vec {e1}+(a_2b_3-a_3b_2)c_1\vec{e2}\vec{e3}\cdot \vec {e1} =(a1b2−a2b1)c3e1 e2 ⋅e3 +(a3b1−a1b3)c2e2 e3 ⋅e1 +(a2b3−a3b2)c1e2 e3 ⋅e1 根据小知识一。
( a 1 b 2 − a 2 b 1 ) c 3 + ( a 3 b 1 − a 1 b 3 ) c 2 + ( a 2 b 3 − a 3 b 2 ) c 1 e 1 ⃗ × e 2 ⃗ ⋅ e 3 (a_1b_2-a_2b_1)c_3+(a_3b_1-a_1b_3)c2+(a_2b_3-a_3b_2)c1\vec{e1}\times\vec{e2}\cdot{e3} (a1b2−a2b1)c3+(a3b1−a1b3)c2+(a2b3−a3b2)c1e1 ×e2 ⋅e3
= ∣ a 1 a 2 a 3 b 1 b 2 b 3 c 1 c 2 c 3 ∣ e 1 ⃗ × e 2 ⃗ ⋅ e 3 ⃗ =\begin{vmatrix} a_1&a_2&a_3\\ b_1&b_2&b_3\\ c_1&c_2&c_3\\ \end{vmatrix}\vec{e1}\times \vec{e2}\cdot \vec{e3} = a1b1c1a2b2c2a3b3c3 e1 ×e2 ⋅e3 根据小知识二。
对于同一仿射坐标系, e 1 ⃗ × e 2 ⃗ ⋅ e 3 ⃗ \vec{e1}\times \vec{e2}\cdot \vec{e3} e1 ×e2 ⋅e3 是定制,可以提前计算出来。
对于直角坐标系, e 1 ⃗ × e 2 ⃗ ⋅ e 3 ⃗ = 1 \vec{e1}\times \vec{e2}\cdot \vec{e3}=1 e1 ×e2 ⋅e3 =1
5.3 三向量(或四点)共面的条件
定理1.10 设 a ⃗ , b ⃗ , c ⃗ \vec a,\vec b,\vec c a ,b ,c 的仿射坐标分别为:KaTeX parse error: Expected 'EOF', got '}' at position 39: ...b_3),(c_1,c2,c2}̲则三向量共线的充分必要条件是:
∣ a 1 a 2 a 3 b 1 b 2 b 3 c 1 c 2 c 3 ∣ = 0 \begin{vmatrix}a1 & a2 & a3\\b1&b2&b3\\c1&c2&c3\end{vmatrix}=0 a1b1c1a2b2c2a3b3c3 =0
推论1.5 : 设四个点A,B,C,D的仿射坐标分别为: ( x i , y i , z i ) (x_i,y_i,z_i) (xi,yi,zi),i=1,2,3,4。则A,B,C,D共面的充分必要条件是:
∣ x 1 y 1 z 1 1 x 2 y 2 z 2 1 x 3 y 3 z 3 1 x 4 y 4 z 4 1 ∣ = 0 \begin{vmatrix} x_1&y_1&z_1&1\\ x_2&y_2&z_2&1\\ x_3&y_3&z_3&1\\ x_4&y_4&z_4&1\\ \end{vmatrix}=0 x1x2x3x4y1y2y3y4z1z2z3z41111 =0
证明过程: D A ⃗ , D B ⃗ , D C ⃗ 共面 ⟺ \vec{DA},\vec{DB},\vec{DC}共面\iff DA ,DB ,DC 共面⟺
∣ x 1 − x 4 y 1 − y 4 z 1 − z 4 x 2 − x 4 y 2 − y 4 z 2 − z 4 x 3 − x 4 y 3 − y 4 z 3 − z 4 ∣ = 0 \begin{vmatrix} x1-x4&y1-y4&z1-z4\\ x2-x4&y2-y4&z2-z4\\ x3-x4&y3-y4&z3-z4\\ \end{vmatrix}=0 x1−x4x2−x4x3−x4y1−y4y2−y4y3−y4z1−z4z2−z4z3−z4 =0
= ∣ x 1 − x 4 y 1 − y 4 z 1 − z 4 0 x 2 − x 4 y 2 − y 4 z 2 − z 4 0 x 3 − x 4 y 3 − y 4 z 3 − z 4 0 x 4 y 4 z 4 1 ∣ =\begin{vmatrix} x1-x4&y1-y4&z1-z4&0\\ x2-x4&y2-y4&z2-z4&0\\ x3-x4&y3-y4&z3-z4&0\\ x4&y4&z4&1\\ \end{vmatrix} = x1−x4x2−x4x3−x4x4y1−y4y2−y4y3−y4y4z1−z4z2−z4z3−z4z40001
= ∣ x 1 y 1 z 1 1 x 2 y 2 z 2 1 x 3 y 3 z 3 1 x 4 y 4 z 4 1 ∣ 第四行分别加到第一、第二、第三行 =\begin{vmatrix} x_1&y_1&z_1&1\\ x_2&y_2&z_2&1\\ x_3&y_3&z_3&1\\ x_4&y_4&z_4&1\\ \end{vmatrix}第四行分别加到第一、第二、第三行 = x1x2x3x4y1y2y3y4z1z2z3z41111 第四行分别加到第一、第二、第三行
5.4 拉格朗日恒等式及其应用
定理1.11拉格朗日恒等式 对任意四个向量 a ⃗ , b ⃗ , c ⃗ , d ⃗ \vec a,\vec b,\vec c,\vec d a ,b ,c ,d ,有:
( a ⃗ × b ⃗ ) ⋅ ( c ⃗ × d ⃗ ) = ∣ a ⃗ ⋅ c ⃗ a ⃗ ⋅ d ⃗ b ⃗ ⋅ c ⃗ b ⃗ ⋅ d ⃗ ∣ (\vec a \times \vec b)\cdot (\vec c \times \vec d)=\begin{vmatrix} \vec a \cdot \vec c & \vec a \cdot \vec d\\ \vec b \cdot \vec c&\vec b \cdot \vec d\\ \end{vmatrix} (a ×b )⋅(c ×d )= a ⋅c b ⋅c a ⋅d b ⋅d
证明 :
( a ⃗ × b ⃗ ) ⋅ ( c ⃗ × d ⃗ ) = b ⃗ × ( c ⃗ × d ) ⋅ a (\vec a \times \vec b)\cdot (\vec c \times \vec d)= \vec b \times( \vec c \times d) \cdot a (a ×b )⋅(c ×d )=b ×(c ×d)⋅a平行六面体的定向体积不变
= ( b ⃗ ⋅ d ⃗ ) c ⃗ − ( b ⃗ ⋅ c ) d ⃗ a ⃗ =(\\vec b \\cdot \\vec d)\\vec c-(\\vec b \\cdot c)\\vec d\vec a =(b ⋅d )c −(b ⋅c)d a 二重外积
= ( b ⃗ ⋅ d ) ( a ⃗ ⋅ c ⃗ ) − ( b ⃗ ⋅ c ) ( a ⃗ ⋅ d ⃗ ) =(\vec b \cdot d)(\vec a \cdot \vec c)-(\vec b \cdot c)(\vec a \cdot \vec d) =(b ⋅d)(a ⋅c )−(b ⋅c)(a ⋅d ) 得证。

扩展阅读
| 算法为骨,CAD为魂 |
|---|
| 亲士工具箱:支持中望CAD2024、AutoCad2013及以上,多年承接CAD项目的精华 |
| 工作中遇到的问题,可以按类别查阅鄙人的算法文章,请点击《算法与数据汇总》。 |
| 学习算法:按章节学习《喜缺全书算法册》,大量的题目和测试用例,打包下载。重视操作 |
| 活到老,学到老。明朝中后期,大约50%的进士能当上堂官(副部及更高);能当上堂官的举人只有十余人。 |
| 子墨子言之:事无终始,无务多业。也就是我们常说的专业的人做专业的事。 |
视频课程
先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771
如何你想快速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176
测试环境
操作系统:win7 开发环境: VS2019 C++17
或者 操作系统:win10 开发环境: VS2022 C++17
如无特殊说明,本算法用**C++**实现。
