gpt4 book ai didi

python - 如何用numpy计算二维向量和OX之间的角度?

转载 作者:行者123 更新时间:2023-12-01 13:27:58 25 4
gpt4 key购买 nike

假设,我有一个 2D numpy 数组链接:

import numpy as np
v = np.array([1, 2])

我想将其视为二维平面上的向量,具有轴 OX 和 OY。我很好奇,是否有内置或非常优雅的方法来计算向量与轴 OX 之间的角度?角度应该是从-PI 到 PI。

我知道,我可以在 numpy.arctan 的帮助下这样计算:

def calc_phi(v):
if v[0] > 0:
return np.arctan(v[1] / v[0])
else:
if v[1] > 0:
if v[0] < 0:
return np.pi + np.arctan(v[1] / v[0])
else:
return np.pi
elif v[1] < 0:
if v[0] < 0:
return -np.pi + np.arctan(v[1] / v[0])
else:
return -np.pi
else:
return 0.0

但是好像不太优雅,因为我要分别考虑x = 0和x < 0的情况。所以我想,numpy可能有一个特殊的函数来计算它.

最佳答案

您可以使用 np.arctan2 :

np.arctan2(*v)

但是,由于角度来自 y 轴:

   |->
| \ #so this is the positive direction
|
-------
|
|

图表可能没有帮助


有必要交换参数以使其计算与 X 的角度:

np.arctan2(v[1], v[0])

关于python - 如何用numpy计算二维向量和OX之间的角度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47497846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com