首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么atan2的参数是Y,X而不是X,Y?

为什么atan2的参数是Y,X而不是X,Y?
EN

Stack Overflow用户
提问于 2009-06-25 18:58:47
回答 5查看 9.7K关注 0票数 29

在C中,atan2函数具有以下签名:

代码语言:javascript
复制
double atan2( double y, double x );

其他语言也是这样做的。这是我所知道的唯一一个以Y,X顺序而不是X,Y顺序为参数的函数,它经常把我搞砸,因为当我考虑坐标时,我认为是(X,Y)。

有人知道为什么atan2的参数顺序约定是这样的吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-06-25 19:01:58

因为我相信它与arctan(y/x)有关,所以y出现在顶部。

这里有一个关于它的很好的链接:Angles and Directions

票数 28
EN

Stack Overflow用户

发布于 2009-06-25 19:04:49

我一直认为这是因为trig的定义,即

代码语言:javascript
复制
tan(theta) = opposite / adjacent

使用从原点开始的标准角度时,相对方向始终为Y,相邻方向始终为X,因此:

代码语言:javascript
复制
atan2(opposite, adjacent) = theta

也就是说,它是这样做的,所以在数学定义方面没有顺序混乱。

票数 12
EN

Stack Overflow用户

发布于 2009-06-25 19:06:56

假设有一个矩形三角形,其相对边称为y,相邻边称为x:

tan(角度)= y/x

arctan(tan(角度))= arctan(y/x)

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

https://stackoverflow.com/questions/1045630

复制
相关文章

相似问题

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