3 回答
TA贡献1810条经验 获得超5个赞
定义需要输入的函数的一种方法是将两者保留为单独的参数(这也修复了一些错误并简化了获取角度值的逻辑):
def angle(x, y):
rad = np.arctan2(y, x)
degrees = np.int(rad*180/np.pi)
if degrees < 0:
degrees = 360 + degrees
return degrees
顺便说一句,atan2输入顺序y, x很容易混淆。单独指定它们的一个优点是可以帮助避免这种情况。如果您想将输入保留为数组,类似这样的内容可以帮助您验证长度:
def angle(a):
if len(a) != 2:
raise IndexError("vector a expected to be length 2")
x = a[0]
y = a[1]
rad = np.arctan2(y, x)
degrees = np.int(rad*180/np.pi)
if degrees < 0:
degrees = 360 + degrees
return degrees
TA贡献1841条经验 获得超3个赞
我的坏处只是注意到它实际上是 numpy 数组,在这种情况下:if isinstance(x, np.ndarray) and x.shape[0] == 2
来自评论:x.ndim == 2
听起来更好。
添加回答
举报