首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将atan转换为atan2?

如何将atan转换为atan2?
EN

Stack Overflow用户
提问于 2020-10-21 20:06:36
回答 1查看 633关注 0票数 1

在Python语言中,如果想从atan()函数创建atan2()的效果,该怎么做呢?例如,如果我有笛卡尔坐标(x,y),并希望使用atan()函数找到(x,y)的圆弧,这样它就可以在所有象限中工作,那么无论x或y的符号是什么,我如何才能在不使用atan2()函数的情况下实现这一点呢?在笛卡尔和极轴之间转换的示例中:

代码语言:javascript
复制
def cartopol(x, y):
    r = (x**2 + y**2)**0.5
    p = math.atan(y/x)
    return(r,p)

这个以弧度为单位返回正确角度的公式目前在使用atan()函数时不起作用,因此必须进行哪些更改?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-21 22:40:56

简而言之,math.atan只适用于象限1和象限4。对于象限2和象限3(即x< 0),你必须加减π(180度)才能得到象限1和象限4,并找到相应的θ值。在代码中,这意味着

代码语言:javascript
复制
if (y < 0 and x < 0): 
    print(math.atan(y/x) - math.pi)
elif (y > 0 and x < 0): 
    print(math.atan(y/x) + math.pi)

有关更多参考信息,请查看atan2。另外两个用例是与atan配合良好的x > 0

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64463152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档