首页 > 解决方案 > 获取具有相同起点 2D 的 2 个向量之间的角度

问题描述

我在计算具有相同起点的 2 个向量之间的角度时遇到了一些麻烦 - 意味着有 3 个坐标,

我试图定义这个函数,但是当给出超过 1 个向量时它不起作用:

def AngleBtw2Points(pointA, pointB):
    ang1 = np.arctan2(*pointA[::-1])
    ang2 = np.arctan2(*pointB[::-1])
    return np.rad2deg((ang1 - ang2) % (2 * np.pi))

带有问题示例的图片

输入为 (X0,Y0) (X1,Y1) (X2,Y2)

标签: pythonpython-3.xnumpygeometryangle

解决方案


如评论中所述,您可以相当容易地使用点积来获得两个向量之间的角度。

def AngleBtw2Vectors(vecA, vecB):
    unitVecA = vecA / np.linalg.norm(vecA)
    unitVecB = vecB / np.linalg.norm(vecB)
    return np.arccos(np.dot(unitVecA, unitVecB))

推荐阅读