<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Atan2</id>
	<title>Atan2 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Atan2"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Atan2&amp;action=history"/>
	<updated>2026-07-12T17:49:24Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Atan2&amp;diff=782605&amp;oldid=prev</id>
		<title>imported&gt;HTinC23：​撤销140.116.71.96（讨论）的版本79910627：衹對-π至0加2π變成π至2π，不是將全範圍加π</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Atan2&amp;diff=782605&amp;oldid=prev"/>
		<updated>2023-11-29T11:44:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/index.php?title=WP:UNDO&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;WP:UNDO（页面不存在）&quot;&gt;撤销&lt;/a&gt;&lt;a href=&quot;/wiki/Special:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/140.116.71.96&quot; title=&quot;Special:用户贡献/140.116.71.96&quot;&gt;140.116.71.96&lt;/a&gt;（&lt;a href=&quot;/index.php?title=User_talk:140.116.71.96&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:140.116.71.96（页面不存在）&quot;&gt;讨论&lt;/a&gt;）的版本79910627：衹對-π至0加2π變成π至2π，不是將全範圍加π&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{article issues|&lt;br /&gt;
{{expand|time=2011-04-10T05:23:28+00:00}}&lt;br /&gt;
{{refimprove|time=2019-08-16T19:39:48+00:00}}&lt;br /&gt;
{{expand language|1=en|page=atan2|time=2019-08-16T19:39:48+00:00}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
在[[三角函数]]中，两个参数的[[函数]]&amp;lt;math&amp;gt;\operatorname{atan2}&amp;lt;/math&amp;gt;是[[正切函数]]&amp;lt;math&amp;gt;\tan&amp;lt;/math&amp;gt;的一个变种。对于任意不同时等于0的实参数&amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;和&amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;，&amp;lt;math&amp;gt;\operatorname{atan2}(y,x)&amp;lt;/math&amp;gt;所表达的意思是坐标原点为起点，指向&amp;lt;math&amp;gt;(x,y)&amp;lt;/math&amp;gt;的射线在坐标平面上与x轴正方向之间的角的角度。当&amp;lt;math&amp;gt;y&amp;gt;0&amp;lt;/math&amp;gt;时，射线与x轴正方向的所得的角的角度指的是x轴正方向绕逆时针方向到达射线旋转的角的角度；而当&amp;lt;math&amp;gt;y&amp;lt;0&amp;lt;/math&amp;gt;时，射线与x轴正方向所得的角的角度指的是x轴正方向绕顺时针方向达到射线旋转的角的角度。&lt;br /&gt;
&lt;br /&gt;
在几何意义上，&amp;lt;math&amp;gt;\operatorname{atan2}(y,x)&amp;lt;/math&amp;gt;等价于&amp;lt;math&amp;gt;\operatorname{atan}(\frac{y}{x})&amp;lt;/math&amp;gt;，但&amp;lt;math&amp;gt;\operatorname{atan2}&amp;lt;/math&amp;gt;的最大优势是可以正确处理&amp;lt;math&amp;gt;x=0&amp;lt;/math&amp;gt;而&amp;lt;math&amp;gt;y\neq 0&amp;lt;/math&amp;gt;的情况，而不必进行会引发[[除以零|除零异常]]的&amp;lt;math&amp;gt;\frac{y}{x}&amp;lt;/math&amp;gt;操作。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\operatorname{atan2}&amp;lt;/math&amp;gt;函数最初在计算机编程语言中被引入，但是现在它的应用在科学和工程等其他多个领域十分常见。他的出现最早可以追溯到[[FORTRAN]]语言&amp;lt;ref&amp;gt;{{Cite book&lt;br /&gt;
 | last = Organick&lt;br /&gt;
 | first = Elliott I.&lt;br /&gt;
 | authorlink = &lt;br /&gt;
 | coauthors = &lt;br /&gt;
 | year =1966 &lt;br /&gt;
 | title =A FORTRAN IV Primer&lt;br /&gt;
 | publisher = Addison-Wesley&lt;br /&gt;
 | location = &lt;br /&gt;
 | quote =&amp;quot;Some processors also offer the library function called ATAN2, a function of two arguments (opposite and adjacent).&amp;quot; &lt;br /&gt;
 | pages = 42&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;，并且可以在[[C语言]]的数学标准库的math.h文件中找到，此外在[[Java]]数学库、[[.NET]]的System.Math（可应用于[[C♯|C#]]、[[VB.NET]]等语言）、[[Python]]的数学模块以及其他地方都可以找到atan2的身影。许多脚本语言，比如[[Perl]]，也包含了C语言风格的atan2函数&amp;lt;ref&amp;gt;The [[Linux API|Linux Programmer&amp;#039;s Manual]] [http://linux.die.net/man/3/atan2] {{Wayback|url=http://linux.die.net/man/3/atan2|date=20110316203135}} says:&lt;br /&gt;
&lt;br /&gt;
: &amp;quot;The &amp;#039;&amp;#039;&amp;#039;atan2&amp;#039;&amp;#039;&amp;#039;() function calculates the [[arc tangent]] of the two variables &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;y&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;.  It is similar to calculating the arc tangent of &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;y&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; / &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;, except that the [[Positive and negative numbers|signs]] of both arguments are used to determine the [[Cartesian coordinate system|quadrant]] of the result.&amp;quot;&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
==函数定义==&lt;br /&gt;
该函数基于值域为 &amp;lt;math&amp;gt;\left ( -\frac{\pi}{2}, \frac{\pi}{2} \right )&amp;lt;/math&amp;gt; 的[[反正切]]函数，定义如下：&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\operatorname{atan2}(y, x) = \begin{cases}&lt;br /&gt;
\arctan\left(\frac y x\right) &amp;amp; \qquad x &amp;gt; 0 \\&lt;br /&gt;
\arctan\left(\frac y x\right) + \pi&amp;amp; \qquad y \ge 0 , x &amp;lt; 0 \\&lt;br /&gt;
\arctan\left(\frac y x\right) - \pi&amp;amp; \qquad y &amp;lt; 0 , x &amp;lt; 0 \\&lt;br /&gt;
+\frac{\pi}{2} &amp;amp; \qquad y &amp;gt; 0 , x = 0 \\&lt;br /&gt;
-\frac{\pi}{2} &amp;amp; \qquad y &amp;lt; 0 , x = 0 \\&lt;br /&gt;
\text{undefined} &amp;amp; \qquad y = 0, x = 0&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
说明&amp;#039;&amp;#039;&amp;#039;:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* 该函数的值域为&amp;lt;math&amp;gt;\left( -\pi,\pi\right]&amp;lt;/math&amp;gt;，可以通过对负数结果加&amp;lt;math&amp;gt;2\pi&amp;lt;/math&amp;gt;的方法，将函数的结果映射到&amp;lt;math&amp;gt;\left [ 0,2\pi\right )&amp;lt;/math&amp;gt;范围内。&lt;br /&gt;
&lt;br /&gt;
==其他软件中的变形==&lt;br /&gt;
不同计算机语言中该函数的实现各有差异。&lt;br /&gt;
&lt;br /&gt;
vb6:&lt;br /&gt;
&lt;br /&gt;
atan2(x,y)=&lt;br /&gt;
&lt;br /&gt;
(x&amp;lt;&amp;gt;0+y&amp;lt;&amp;gt;0)*&lt;br /&gt;
&lt;br /&gt;
(x&amp;lt;=0)*2*Atn(sgn(y)^sgn(y))/2^(x&amp;lt;&amp;gt;0)-&lt;br /&gt;
&lt;br /&gt;
(x&amp;lt;&amp;gt;0)*Atn(y*x^(x&amp;lt;&amp;gt;0))&lt;br /&gt;
&lt;br /&gt;
adodb.connect.execute:&lt;br /&gt;
&lt;br /&gt;
SELECT (x&amp;lt;&amp;gt;0+y&amp;lt;&amp;gt;0)*(x&amp;lt;=0)*2*Atn(sgn(y)^sgn(y))/2^(x&amp;lt;&amp;gt;0)-(x&amp;lt;&amp;gt;0)*Atn(y*x^(x&amp;lt;&amp;gt;0)) AS AT_  FROM (SELECT Col1 AS x,Col2 AS y) T_&lt;br /&gt;
&lt;br /&gt;
(x&amp;lt;&amp;gt;0+y&amp;lt;&amp;gt;0)可省略&lt;br /&gt;
&lt;br /&gt;
==有关图片==&lt;br /&gt;
[[File:Atan2 60.svg|thumb|right|320px|单位圆内的atan2取值]]&lt;br /&gt;
&lt;br /&gt;
旁边的图片显示内容是：在一个单位圆内&amp;lt;math&amp;gt;\operatorname{atan2}&amp;lt;/math&amp;gt;函数在各点的取值。圆内标注代表各点的取值的幅度表示。&lt;br /&gt;
&lt;br /&gt;
图片中，从最左端开始，角度的大小随着逆时针方向逐渐从&amp;lt;math&amp;gt;-\pi&amp;lt;/math&amp;gt;增大到&amp;lt;math&amp;gt;+\pi&amp;lt;/math&amp;gt;，并且角度大小在点位于最右端时，取值为0。&lt;br /&gt;
&lt;br /&gt;
另外要注意的是，函数&amp;lt;math&amp;gt;\operatorname{atan2}(y,x)&amp;lt;/math&amp;gt;中参数的顺序是倒置的，&amp;lt;math&amp;gt;\operatorname{atan2}(y,x)&amp;lt;/math&amp;gt;计算的值相当于点&amp;lt;math&amp;gt;(x,y)&amp;lt;/math&amp;gt;的角度值。&lt;br /&gt;
&lt;br /&gt;
下方的图片显示的是单位圆上各点在atan2函数上的值，从原点射向&amp;lt;math&amp;gt;(0,1)&amp;lt;/math&amp;gt;点的射线，开始绕逆时针方向可以与x轴正方向得到对应各点的复平面的复角，其中几个特殊点取值：&lt;br /&gt;
*&amp;lt;math&amp;gt;(0,1)&amp;lt;/math&amp;gt;对应的复平面夹角为&amp;lt;math&amp;gt;\frac{\pi}{2}&amp;lt;/math&amp;gt;，&lt;br /&gt;
*&amp;lt;math&amp;gt;(-1,0)&amp;lt;/math&amp;gt;对应复平面的夹角为&amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt;，&lt;br /&gt;
*&amp;lt;math&amp;gt;(0,-1)&amp;lt;/math&amp;gt;对应复平面的夹角为&amp;lt;math&amp;gt;\frac{3\pi}{2}&amp;lt;/math&amp;gt;，&lt;br /&gt;
*回到&amp;lt;math&amp;gt;(1,0)&amp;lt;/math&amp;gt;复平面的夹角为&amp;lt;math&amp;gt;0=(2n\pi \mod 2\pi)&amp;lt;/math&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
这些你可以直观地从图中看出。&amp;lt;ref&amp;gt;{{Cite web |url=http://www.mndynamics.com/indexp.html |title=Computation of the external argument by Wolf Jung |accessdate=2011-04-10 |archive-date=2011-07-14 |archive-url=https://web.archive.org/web/20110714104650/http://www.mndynamics.com/indexp.html |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:Atan2-discontinuity.svg]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
下面的插图分别显示的是&amp;lt;math&amp;gt;\operatorname{atan2}(y,x)&amp;lt;/math&amp;gt;和&amp;lt;math&amp;gt;\operatorname{atan}(\frac{y}{x})&amp;lt;/math&amp;gt;在坐标平面的三维景象。&lt;br /&gt;
&lt;br /&gt;
注意在&amp;lt;math&amp;gt;\operatorname{atan2}(y,x)&amp;lt;/math&amp;gt;函数中，从原点辐射出的射线上有常数值，而在&amp;lt;math&amp;gt;\operatorname{atan}(\frac{y}{x})&amp;lt;/math&amp;gt;的函数中，经过原点的直线有常数值。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:Atan2Diagram.png|400px]] [[Image:AtanDiagram.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==参考文献==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
==参见==&lt;br /&gt;
*[[辐角]]&lt;br /&gt;
*[[复数 (数学)|复数]]&lt;br /&gt;
*[[反三角函数]]中的[[反正切]]（[[正切函数]]的[[反函數]]）&lt;br /&gt;
&lt;br /&gt;
==外部链接==&lt;br /&gt;
*[http://java.sun.com/javase/6/docs/api/java/lang/Math.html#atan2%28double,%20double%29 Java 1.6 SE JavaDoc]{{Wayback|url=http://java.sun.com/javase/6/docs/api/java/lang/Math.html#atan2%28double,%20double%29 |date=20090829081338 }}&lt;br /&gt;
*[http://www.cplusplus.com/ref/cmath/atan2.html C++ Programmer&amp;#039;s Reference]{{Wayback|url=http://www.cplusplus.com/ref/cmath/atan2.html |date=20011005031348 }}&lt;br /&gt;
&lt;br /&gt;
{{三角函數}}&lt;br /&gt;
&lt;br /&gt;
[[Category:反三角函数]]&lt;/div&gt;</summary>
		<author><name>imported&gt;HTinC23</name></author>
	</entry>
</feed>