我正在尝试在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))
我想知道是否还有另一种方法。
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