في الحوسبة وفي الرياضيات، دالة قوس الظل ثنائي العُمْدَة (بالإنجليزية: atan2) هي قوس الظل ذو عُمْدَتَيْن. بالتعريف،
θ
=
atan2
(
y
,
x
)
{\displaystyle \theta =\operatorname {atan2} (y,x)}
هي قياس الزاوية في المستوي الإقليدي، المعطاة بالراديان مع
−
π
<
θ
≤
π
{\displaystyle -\pi <\theta \leq \pi }
، بين محور السينات الموجب ونصف المستقيم من الأصل إلى النقطة
(
x
,
y
)
{\displaystyle (x,\,y)}
في المستوي الديكارتي.
ظهرت دالة
atan2
(
y
,
x
)
{\displaystyle \operatorname {atan2} (y,x)}
لأول مرة في لغة البرمجة فورتران (في تنفيذ FORTRAN-IV الخاص بـ IBM) عام 1961. كان من المفترض في الأصل إرجاع قيمة صحيحة لا لبس فيها للزاوية θ في التحويل من الإحداثيات الديكارتية (x, y) إلى الإحداثيات القطبية (r, θ).
على قدم المساواة،
atan2
(
y
,
x
)
{\displaystyle \operatorname {atan2} (y,x)}
هي عمدة (وتسمى أيضًا الطور أو الزاوية) للعدد المركب
x
+
i
y
{\displaystyle x+iy}
.
تُرجِع
atan2
(
y
,
x
)
{\displaystyle \operatorname {atan2} (y,x)}
قيمة واحدة
θ
{\displaystyle \theta }
بحيث
−
π
<
θ
≤
π
{\displaystyle -\pi <\theta \leq \pi }
ومن أجل
r
=
x
2
+
y
2
{\textstyle r={\sqrt {x^{2}+y^{2}}}}
:
x
=
r
cos
θ
y
=
r
sin
θ
{\displaystyle {\begin{aligned}x&=r\cos \theta \\y&=r\sin \theta \end{aligned}}}
إذا كانت x > 0، تُعطى الزاوية من خلال:
θ
=
a
t
a
n
2
(
y
,
x
)
=
arctan
(
y
x
)
.
{\displaystyle \theta =\mathop {\rm {atan2}} (y,x)=\arctan \left({\frac {y}{x}}\right).}
ومع ذلك، عندما x < 0 ، الزاوية المعطاة بواسطة
arctan
(
y
x
)
{\displaystyle \arctan({\tfrac {y}{x}})}
النقاط في الاتجاه المقابل للزاوية الصحيحة، ويجب إضافة قيمة
±
π
{\displaystyle \pm \pi }
(أو
±
180
∘
{\displaystyle \pm 180^{\circ }}
) إلى θ لوضع النقطة في الربع الصحيح من المستوى الإقليدي. يتطلب هذا معرفة إشارتي x و y بشكل منفصل، والتي تُفقد عند قسمة y على x ، ومن هنا تأتي الحاجة إلى قوس ظل متغيرين.
نظرًا لأنه يمكن إضافة أي عدد صحيح مضاعف لـ 2π إلى θ دون تغيير x أو y ، مما يقتضي قيمة مبهمة للقيمة التي تم إرجاعها، القيمة الأساسية للزاوية، في الفترة
−
π
<
θ
≤
π
{\displaystyle -\pi <\theta \leq \pi }
. θ ، بحيث تكون زوايا عكس اتجاه عقارب الساعة موجبة وتكون سالبة في اتجاه عقارب الساعة. بعبارة أخرى، تقع
atan2
(
y
,
x
)
{\displaystyle \operatorname {atan2} (y,x)}
في الفترة المغلقة [0, π] عندما y ≥ 0 ، وفي الفترة المفتوحة (−π, 0) عندما y < 0 .