python - 获取具有相同起点 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)
解决方案
如评论中所述,您可以相当容易地使用点积来获得两个向量之间的角度。
def AngleBtw2Vectors(vecA, vecB):
unitVecA = vecA / np.linalg.norm(vecA)
unitVecB = vecB / np.linalg.norm(vecB)
return np.arccos(np.dot(unitVecA, unitVecB))
推荐阅读
- sql - 从 MS Access 表返回第 n 行的问题
- python - 负索引和切片 Python
- ms-word - 如何在 MS Office 文档中禁用(使非活动/灰色)文件按钮
- javascript - 如何使用 MatdialogRef 显示对话框?
- r - 向ggplot2中的指南添加比例变换
- azure - 如何获取运行 Kubernetes 服务的 VM 的外部 IP
- ruby-on-rails - 如何组合两个查询而不使其成为 AND 类型查询?
- email - Github API 无法设置用户邮箱
- javascript - 错误说 rowRenderer 不是函数
- excel - 检查值是否包含在另一列中,然后根据该列获取值(Excel)