作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设,我有一个 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/
我是一名优秀的程序员,十分优秀!