三维空间向量夹角计算

计算过程

已知向量 A → \overrightarrow{A} A B → \overrightarrow{B} B 分别为:
A → = ( a x , a y , a z ) \overrightarrow{A}=(a_x, a_y, a_z) A =(ax,ay,az) B → = ( b x , b y , b z ) \overrightarrow{B}=(b_x, b_y, b_z) B =(bx,by,bz)
则,向量 A → \overrightarrow{A} A B → \overrightarrow{B} B 之间的夹角为:
θ = a r c c o s ( A → ⋅ B → ∥ A → ∥ ∥ B → ∥ ) = a r c c o s ( a x b x + a y b y + a z b z a x 2 + b y 2 + c z 2 b x 2 + b y 2 + b z 2 ) \begin{aligned} \theta &=arccos( \frac{\overrightarrow{A}\cdot\overrightarrow{B}}{\|\overrightarrow{A}\|\|\overrightarrow{B}\|} )\\ & =arccos( \frac{a_x b_x + a_y b_y + a_z b_z}{\sqrt{a^2_x + b^2_y + c^2_z}\sqrt{b^2_x + b^2_y + b^2_z}}) \end{aligned} θ=arccos(A ∥∥B A B )=arccos(ax2+by2+cz2 bx2+by2+bz2 axbx+ayby+azbz)

注: θ \theta θ 单位是弧度,若需要使用对应角度大小,可使用以下公式转换。
α = θ ∗ 180 π \alpha=\theta*\frac{180}{\pi} α=θπ180

MATLAB 程序示例

A = [1,3,2];
B = [2,2,1];
theta = acos(A * B' / norm(A) / norm(B));
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐