在C中,atan2函数具有以下签名:
double atan2( double y, double x );
其他语言也是这样做的。这是我所知道的唯一一个以Y,X顺序而不是X,Y顺序为参数的函数,它经常把我搞砸,因为当我考虑坐标时,我认为是(X,Y)。
有人知道为什么atan2的参数顺序约定是这样的吗?
发布于 2009-06-25 19:01:58
因为我相信它与arctan(y/x)有关,所以y出现在顶部。
这里有一个关于它的很好的链接:Angles and Directions
发布于 2009-06-25 19:04:49
我一直认为这是因为trig的定义,即
tan(theta) = opposite / adjacent
使用从原点开始的标准角度时,相对方向始终为Y,相邻方向始终为X,因此:
atan2(opposite, adjacent) = theta
也就是说,它是这样做的,所以在数学定义方面没有顺序混乱。
发布于 2009-06-25 19:06:56
假设有一个矩形三角形,其相对边称为y,相邻边称为x:
tan(角度)= y/x
arctan(tan(角度))= arctan(y/x)
https://stackoverflow.com/questions/1045630
复制相似问题