两个连续3d向量之间的角度

问题描述 投票:0回答:1

我正在尝试在python中计算两个3D向量之间的夹角,其中一个向量的起点是第一个向量的终点。例如,向量A从原点开始,以坐标(300,0,0)结束,向量B从(300,0,0)开始,以(460,0,-120)结束。y知道角度的唯一方法是将原点转换为(300,0,0)并使用以下代码进行计算。

u=np.array([-300,0,0]) 
v=np.array([160,0,-120])
c = dot(u,v)/norm(u)/norm(v) 
angle = arccos(clip(c, -1, 1))

我想知道是否还有另一种方法。

python python-3.x numpy
1个回答
0
投票
import numpy as np import vg # get the points origin = np.array([0, 0, 0]) p1 = np.array([300,0,0]) p2 = np.array([460,0,-120]) # define the vectors from points u = p1 - origin v = p1 - p2 # calculate angle between two vectors angle = vg.angle(u,v) print(angle)

此打印输出:

>> 143.13010235415598
© www.soinside.com 2019 - 2024. All rights reserved.