编辑:很显然,在采用许多不同的方法后,我在atan2
中犯了一个错误,但仍然很想找到公式。
我已经阅读了多个主题和文章,但不明白为什么atan和atan2在转换为学位后会得出不同的结果。这是我的示例(来自CIElab颜色空间的 )x -79.7751, y 2.677374209
。在两种情况下不对代码进行任何更改的计算将给出错误的值:
atan(-79.7751 / 2.677374209) = -1,537 / or in degrees -88,07778762
atan2(-79.7751 , 2.677374209) = 3,1258 / or in degrees 179,0965
但是,该示例来自article,因此我们可以检查结果。基本上答案应该是271.9222
。我已经在网上对atan
进行了更正,现在得到了相同的结果,但是在x=y=0
中对atan
的价值仍然不确定,因此应该对{ {1}}。不幸的是,我没有发现任何可以产生相同结果并得到证明的东西(我的意思是可以在文献中找到)。 CIElab的大多数资源都说使用atan2
没有任何改正,并且正如您可以在下面看到的,在我的特殊情况下,这是不正确的。这是我得到的:
atan2
,你可以看到,̶̶接近,但没有雪茄。此外,它的不同之1度,一些̶c̶h̶a̶n̶g̶e̶.̶我的问题是如何精确地可以使校正{{1} }以获得适当的结果?