SlideShare une entreprise Scribd logo
1  sur  7
Télécharger pour lire hors ligne
Atan2 1
Atan2
In a variety of computer languages, the function atan2 is the arctangent function with two arguments. The purpose
of using two arguments instead of one, is to gather information of the signs of the inputs in order to return the
appropriate quadrant of the computed angle, which is not possible for the single-argument arctangent function.
For any real number (e.g., floating point) arguments x and y not both equal to zero, atan2(y, x) is the angle in radians
between the positive x-axis of a plane and the point given by the coordinates (x, y) on it. The angle is positive for
counter-clockwise angles (upper half-plane, y > 0), and negative for clockwise angles (lower half-plane, y < 0).
The atan2 function was first introduced in computer programming languages, but now it is also common in other
fields of science and engineering. It dates back at least as far as the FORTRAN programming language
[1]
and is
currently found in C's math.h standard library, the Java Math library, .NET's System.Math (usable from C#,
VB.NET, etc.), the Python math module, the Ruby Math module, and elsewhere. Many scripting languages, such as
Perl, include the C-style atan2 function.
[2]
In mathematical terms, atan2 computes the principal value of the argument function applied to the complex number
x+iy. That is, atan2(y, x) = Pr arg(x+iy) = Arg(x+iy). The argument can be changed by 2π (corresponding to a
complete turn around the origin) without making any difference to the angle, but to define atan2 uniquely one uses
the principal value in the range (−π, π]. That is, −π < atan2(y, x) ≤ π.
The atan2 function is useful in many applications involving vectors in Euclidean space, such as finding the direction
from one point to another. A principal use is in computer graphics rotations, for converting rotation matrix
representations into Euler angles.
In some computer programming languages, the order of the parameters is reversed (for example, in some
spreadsheets) or a different name is used for the function (for example, Mathematica uses ArcTan[x,y]). On
scientific calculators the function can often be calculated as the angle given when (x, y) is converted from rectangular
coordinates to polar coordinates.
Motivation
The one-argument arctangent function can not distinguish between diametrically opposite directions. For example,
the anticlockwise angle from the x-axis to the vector (1, 1), calculated in the usual way as arctan(1/1), is π/4
(radians), or 45°. However, the angle between the x-axis and the vector (−1, −1) appears, by the same method, to be
arctan(−1/−1), again π/4, even though the answer clearly should be −3π/4, or −135°.
The atan2 function takes into account the signs of both vector components, and places the angle in the correct
quadrant. Thus, atan2(1, 1) = π/4 and atan2(−1, −1) = −3π/4.
Additionally, the ordinary arctangent method breaks down when required to produce an angle of ±π/2 (or ±90°). For
example, an attempt to find the angle between the x-axis and the vector (0, 1) requires evaluation of arctan(1/0),
which fails on division by zero. In contrast, atan2(1, 0) gives the correct answer of π/2.
When calculations are performed manually, the necessary quadrant corrections and exception handling can be done
by inspection, but in computer programs it is extremely useful to have a single function that always gives an
unambiguous correct result.
Atan2 2
Definition and computation
In terms of the standard arctan function, whose range is (−π/2, π/2), it can be expressed as follows:
Notes:
• This produces results in the range (−π, π], which can be mapped to [0, 2π) by adding 2π to negative results.
•• Traditionally, atan2(0, 0) is undefined.
• The C function atan2, and most other computer implementations, are designed to reduce the effort of
transforming cartesian to polar coordinates and so always define atan2(0, 0). On implementations without
signed zero, or when given positive zero arguments, it is normally defined as 0. It will always return a value in
the range [−π, π] rather than raising an error or returning a NaN (Not a Number).
• Systems supporting symbolic mathematics normally return an undefined value for atan2(0,0) or
otherwise signal that an abnormal condition has arisen.
• For systems implementing signed zero, infinities, or Not a Number (for example, IEEE floating point), it is
common to implement reasonable extensions which may extend the range of values produced to include −π and
−0. These also may return NaN or raise an exception when given a NaN argument.
• For systems implementing signed zero (for example, IEEE floating point), atan2(-0, x), x < 0 returns the value
−π. atan2(+0, x), x < 0 still returns +π.
The free math library FDLIBM (Freely Distributable LIBM) available from netlib has source code showing how it
implements atan2 including handling the various IEEE exceptional values.
For systems without a hardware multiplier the function atan2 can be implemented in a numerically reliable
manner by the CORDIC method. Thus implementations of atan(y) will probably choose to compute
atan2(y,1).
The following expression derived from the tangent half-angle formula can also be used to define atan2.
This expression may be more suited for symbolic use than the definition above. However it is unsuitable for floating
point computational use as it is undefined for y = 0, x < 0 and may overflow near these regions. The formula gives an
NaN or raises an error for atan2(0, 0), but this is not an issue since atan2(0, 0) is not defined.
A variant of the last formula is sometimes used in high precision computation. This avoids overflow but is always
undefined when y = 0:
Atan2 3
Variations and notation
• In Common Lisp, where optional arguments exist, the atan function allows one to optionally supply the x
coordinate: (atan y x).
[3]
• In Mathematica, the form ArcTan[x, y] is used where the one parameter form supplies the normal
arctangent. Mathematica classifies ArcTan[0, 0] as an indeterminate expression.
• In Microsoft Excel, the atan2 function has the two arguments reversed.
[4]
OpenOffice.org Calc also reverses
the arguments, as does the Google Spreadsheets <atan2 function.
[5]
• In the Intel Architecture assembler code, atan2 is known as the FPATAN (floating-point partial arctangent)
instruction.
[6]
It can deal with infinities and results lie in the closed interval [−π, π], e.g. atan2(∞, x) = +π.
Particularly, FPATAN is defined when both arguments are zero:
atan2(+0, +0) = +0
atan2(+0, −0) = +π
atan2(−0, +0) = −0
atan2(−0, −0) = −π
This definition is related to the concept of signed zero, i.e.
• On most TI graphing calculators (excluding the TI-85 and TI-86), the equivalent function is called R►Pθ and has
the arguments reversed.
• In mathematical writings other than source code, such as in books and articles, the notations Arctan
[7]
and
Tan
-1[8]
have been utilized; these are uppercase variants of the regular arctan and tan
-1
. This usage is consistent
with the complex argument notation, such that Atan(y, x) = Arg(x+iy).
Atan2 4
Illustrations
atan2 round a circle
The diagram alongside shows values of
atan2 at selected points on the unit
circle. The values, in radians, are
shown inside the circle. The diagram
uses the standard mathematical
convention that angles increase
anticlockwise (counterclockwise), and
zero is to the right. Note that the order
of arguments is reversed; the function
atan2(y, x) computes the angle
corresponding to the point (x, y).
The diagram below shows values of
atan2 for points on the unit circle. On
the x-axis is the complex angle of the
points, starting from 0 ( point (1,0) )
and going anticlockwise
(counterclockwise), through points:
•• (0, 1) with complex angle π/2 (in
radians),
• (−1, 0) with complex angle π,
• (0, −1) with complex angle 3π/2,
to (1, 0) with complex angle 0 = (2nπ
mod 2π).
On this diagram one can clearly see the discontinuity of the atan2 function.
[9]
The diagrams below show 3D view of respectively atan2(y, x) and arctan(y/x) over a region of the plane.
Note that for atan2, rays emanating from the origin have constant values, but for atan lines passing through the origin
have constant values. For x > 0, the two diagrams give identical values.
Atan2 5
Derivative
As the function atan2 is a function of two variables, it has two partial derivatives. At points where these derivatives
exist, atan2 is, except for a constant, equal to arctan(y/x). hence:
for
Informally representing the function atan2 as the angle function (which is only defined up
to a constant) yields the following formula for the total derivative:
While the function atan2 is discontinuous along the negative y-axis, reflecting the fact that angle cannot be
continuously defined, this derivative is continuously defined except at the origin, reflecting the fact that infinitesimal
(and indeed local) changes in angle can be defined everywhere except the origin. Integrating this derivative along a
path gives the total change in angle over the path, and integrating over a closed loop gives the winding number.
In the language of differential geometry, this derivative is a one-form, and it is closed (its derivative is zero) but not
exact (it is not the derivative of a 0-form, i.e., a function), and in fact it generates the first de Rham cohomology of
the punctured plane. This is the most basic example of such a form, and it is fundamental in differential geometry.
The partial derivatives of atan2 do not contain trigonometric functions, making it particularly useful in many
applications (e.g. embedded systems) where trigonometric functions can be expensive to evaluate.Wikipedia:Please
clarify
Atan2 6
References
[2] The Linux Programmer's Manual (http://linux.die.net/man/3/atan2) says:
"The atan2() function calculates the arc tangent of the two variables y and x. It is similar to calculating the arc
tangent of y / x, except that the signs of both arguments are used to determine the quadrant of the result."
[6] IA-32 Intel Architecture Software Developer’s Manual. Volume 2A: Instruction Set Reference, A-M, 2004.
[7] http://books.google.com/books?id=2LIMMD9FVXkC&pg=PA234&dq=four+quadrant+inverse+tangent+mathematical+notation&
hl=en&sa=X&ei=Q2Y4UaGTAcmzyAHsooCoBw&ved=0CDgQ6AEwAg#v=onepage&
q=four%20quadrant%20inverse%20tangent%20mathematical%20notation&f=false
[8] http://books.google.com/books?id=7nNjaH9B0_0C&pg=PA345&dq=four+quadrant+inverse+tangent+mathematical+notation&
hl=en&sa=X&ei=Q2Y4UaGTAcmzyAHsooCoBw&ved=0CDIQ6AEwAQ#v=onepage&
q=four%20quadrant%20inverse%20tangent%20mathematical%20notation&f=false
[9] Computation of the external argument by Wolf Jung (http://www.mndynamics.com/indexp.html)
External links
• Java 1.6 SE JavaDoc (http://java.sun.com/javase/6/docs/api/java/lang/Math.html#atan2(double, double))
• atan2 (http://everything2.com/index.pl?node_id=1008481) at Everything2
• PicBasic Pro solution (http://www.picbasic.co.uk/forum/showthread.php?p=70269#post70269) atan2 for a
PIC18F
Other implementations/code for atan2
• Bearing Between Two Points (http://mathforum.org/library/drmath/view/55417.html)
• Arctan and Polar Coordinates (http://mathforum.org/library/drmath/view/54114.html)
• What's 'Arccos'? (http://mathforum.org/library/drmath/view/54172.html)
Article Sources and Contributors 7
Article Sources and Contributors
Atan2  Source: http://en.wikipedia.org/w/index.php?oldid=568349161  Contributors: 1exec1, 2620:0:1000:1502:6E3B:E5FF:FE1A:AFFC, Adam majewski, Anthony Appleyard, Apatterno,
Arichnad, Armando, Army1987, ArnoldReinhold, Avraham, Balabiot, Basawala, Ben pcc, Betacommand, Bob K, CALR, CBM, Cheesefondue, Chowbok, CompuChip, Cooperised, Csc14us,
DVdm, Daimanta, Davidhorman, Dcoetzee, Dhollm, Diegoaac, Dmcq, Drilnoth, Fgnievinski, Gandalf61, Gerbrant, GregorB, Hgilbert, Ian Vaughan, InverseHypercube, James Skinsale, Jfmantis,
John Vandenberg, JohnOwens, Jvohn, KSmrq, Keenan Pepper, Kenyon, KlappCK, Kpengboy, Kri, Kuashio, Lukas Mach, MarkSweep, Maulattu, Mdd4696, Michael Hardy, Michel BUZE,
Monsterman222, Mwarren us, Nbarth, Netheril96, NevemTeve, Nijdam, PAR, PreviousDeclaration, Quelt42, Quietbritishjim, Qwfp, R27182818, RahulWaghamare, Raise exception, Rgfibe,
Rjamisolajr, Rjgodoy, Rumping, Simetrical, SimonP, Slawekb, Slithymatt, Stevenj, Superm401, Thonord, Tobias Bergemann, Unbitwise, Utopianheaven, V1adis1av, Vadmium, Yuzisee, 谢弘,
102 anonymous edits
Image Sources, Licenses and Contributors
File:Atan2 60.svg  Source: http://en.wikipedia.org/w/index.php?title=File:Atan2_60.svg  License: Creative Commons Attribution-Sharealike 3.0  Contributors: Dmcq
File:Atan2-discontinuity.svg  Source: http://en.wikipedia.org/w/index.php?title=File:Atan2-discontinuity.svg  License: Creative Commons Attribution-Sharealike 3.0  Contributors: Atan2.PNG:
Adam majewski derivative work: Kpengboy (talk)
Image:Atan2Diagram.png  Source: http://en.wikipedia.org/w/index.php?title=File:Atan2Diagram.png  License: Public Domain  Contributors: Self.
Image:AtanDiagram.png  Source: http://en.wikipedia.org/w/index.php?title=File:AtanDiagram.png  License: Public Domain  Contributors: Self.
License
Creative Commons Attribution-Share Alike 3.0 Unported
//creativecommons.org/licenses/by-sa/3.0/

Contenu connexe

Tendances

Robotics: Cartesian Trajectory Planning
Robotics: Cartesian Trajectory PlanningRobotics: Cartesian Trajectory Planning
Robotics: Cartesian Trajectory Planning
Damian T. Gordon
 
Computer aided manufacturing robotic systems
Computer aided manufacturing robotic systemsComputer aided manufacturing robotic systems
Computer aided manufacturing robotic systems
Prasanth Kumar RAGUPATHY
 
Fractional Calculus
Fractional CalculusFractional Calculus
Fractional Calculus
VRRITC
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
Miyoshi Yuya
 

Tendances (20)

Robotics: Cartesian Trajectory Planning
Robotics: Cartesian Trajectory PlanningRobotics: Cartesian Trajectory Planning
Robotics: Cartesian Trajectory Planning
 
PRML 4.4-4.5.2 ラプラス近似
PRML 4.4-4.5.2 ラプラス近似PRML 4.4-4.5.2 ラプラス近似
PRML 4.4-4.5.2 ラプラス近似
 
SGDによるDeepLearningの学習
SGDによるDeepLearningの学習SGDによるDeepLearningの学習
SGDによるDeepLearningの学習
 
Computer aided manufacturing robotic systems
Computer aided manufacturing robotic systemsComputer aided manufacturing robotic systems
Computer aided manufacturing robotic systems
 
PRML輪読#9
PRML輪読#9PRML輪読#9
PRML輪読#9
 
統計的学習の基礎 5章前半(~5.6)
統計的学習の基礎 5章前半(~5.6)統計的学習の基礎 5章前半(~5.6)
統計的学習の基礎 5章前半(~5.6)
 
Fractional Calculus
Fractional CalculusFractional Calculus
Fractional Calculus
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
 
Denavit Hartenberg Algorithm
Denavit Hartenberg AlgorithmDenavit Hartenberg Algorithm
Denavit Hartenberg Algorithm
 
Robotics for Path Planning
Robotics for Path PlanningRobotics for Path Planning
Robotics for Path Planning
 
線形?非線形?
線形?非線形?線形?非線形?
線形?非線形?
 
5 robotica de manipulação
5 robotica de manipulação5 robotica de manipulação
5 robotica de manipulação
 
HMM viterbi
HMM viterbiHMM viterbi
HMM viterbi
 
PRML輪読#8
PRML輪読#8PRML輪読#8
PRML輪読#8
 
Vhdl
VhdlVhdl
Vhdl
 
20190721 gaussian process
20190721 gaussian process20190721 gaussian process
20190721 gaussian process
 
Fir 05 dynamics
Fir 05 dynamicsFir 05 dynamics
Fir 05 dynamics
 
Robot Manipulation Basics
Robot Manipulation BasicsRobot Manipulation Basics
Robot Manipulation Basics
 
Stanの事後処理 LTver
Stanの事後処理 LTverStanの事後処理 LTver
Stanの事後処理 LTver
 
Quantile and Expectile Regression
Quantile and Expectile RegressionQuantile and Expectile Regression
Quantile and Expectile Regression
 

En vedette

En vedette (20)

La Regina del Rock and Roll
La Regina del Rock and RollLa Regina del Rock and Roll
La Regina del Rock and Roll
 
Tina Turner La Regina del Rock and Roll
 Tina Turner La Regina del Rock and Roll Tina Turner La Regina del Rock and Roll
Tina Turner La Regina del Rock and Roll
 
What what app
What what appWhat what app
What what app
 
La Regina del Rock and Roll
La Regina del Rock and RollLa Regina del Rock and Roll
La Regina del Rock and Roll
 
Prasad n. resume
Prasad n. resumePrasad n. resume
Prasad n. resume
 
Tina Turner Die Königin Rock and Roll
Tina Turner Die Königin Rock and RollTina Turner Die Königin Rock and Roll
Tina Turner Die Königin Rock and Roll
 
A Rainha do Rock and Roll
A Rainha do Rock and RollA Rainha do Rock and Roll
A Rainha do Rock and Roll
 
La Reina del Rock and Roll
 La Reina del Rock and Roll La Reina del Rock and Roll
La Reina del Rock and Roll
 
Tina Turner La Regina del Rock and Roll
Tina Turner La Regina del Rock and RollTina Turner La Regina del Rock and Roll
Tina Turner La Regina del Rock and Roll
 
Slideshare
SlideshareSlideshare
Slideshare
 
La Regina del Rock and Roll
La Regina del Rock and RollLa Regina del Rock and Roll
La Regina del Rock and Roll
 
A Rainha do Rock and Roll
A Rainha do Rock and RollA Rainha do Rock and Roll
A Rainha do Rock and Roll
 
Idc business-value-of-openshift
Idc business-value-of-openshiftIdc business-value-of-openshift
Idc business-value-of-openshift
 
Die Königin Rock and Roll
Die Königin Rock and RollDie Königin Rock and Roll
Die Königin Rock and Roll
 
FOTOVIDEO EN DIAPOSITIVA DE LA MATERIA DE ECONOMIA
FOTOVIDEO EN DIAPOSITIVA DE LA MATERIA DE ECONOMIAFOTOVIDEO EN DIAPOSITIVA DE LA MATERIA DE ECONOMIA
FOTOVIDEO EN DIAPOSITIVA DE LA MATERIA DE ECONOMIA
 
Tati
TatiTati
Tati
 
Idc business-value-of-openshift
Idc business-value-of-openshiftIdc business-value-of-openshift
Idc business-value-of-openshift
 
The Queen of Rock and Roll
The Queen of Rock and RollThe Queen of Rock and Roll
The Queen of Rock and Roll
 
The Queen of Rock and Roll
The Queen of Rock and RollThe Queen of Rock and Roll
The Queen of Rock and Roll
 
Die Königin Rock and Roll
Die Königin Rock and RollDie Königin Rock and Roll
Die Königin Rock and Roll
 

Similaire à Atan2

Inverse trig functions
Inverse trig functionsInverse trig functions
Inverse trig functions
Jessica Garcia
 
Calculus academic journal (sample)
Calculus academic journal (sample)Calculus academic journal (sample)
Calculus academic journal (sample)
Vincentius Soesanto
 
Robotics_Final_Paper_Folza
Robotics_Final_Paper_FolzaRobotics_Final_Paper_Folza
Robotics_Final_Paper_Folza
Alex Folz
 

Similaire à Atan2 (20)

MATLABgraphPlotting.pptx
MATLABgraphPlotting.pptxMATLABgraphPlotting.pptx
MATLABgraphPlotting.pptx
 
Cs6402 design and analysis of algorithms may june 2016 answer key
Cs6402 design and analysis of algorithms may june 2016 answer keyCs6402 design and analysis of algorithms may june 2016 answer key
Cs6402 design and analysis of algorithms may june 2016 answer key
 
Signals and Systems Assignment Help
Signals and Systems Assignment HelpSignals and Systems Assignment Help
Signals and Systems Assignment Help
 
Newton cotes integration method
Newton cotes integration  methodNewton cotes integration  method
Newton cotes integration method
 
Exp integrals
Exp integralsExp integrals
Exp integrals
 
Numerical Analysis Assignment Help
Numerical Analysis Assignment HelpNumerical Analysis Assignment Help
Numerical Analysis Assignment Help
 
Parallel algorithm in linear algebra
Parallel algorithm in linear algebraParallel algorithm in linear algebra
Parallel algorithm in linear algebra
 
Daa chapter11
Daa chapter11Daa chapter11
Daa chapter11
 
Chp-1 Quick Review of basic concepts.pdf
Chp-1 Quick Review of basic concepts.pdfChp-1 Quick Review of basic concepts.pdf
Chp-1 Quick Review of basic concepts.pdf
 
Numerical Analysis Assignment Help
Numerical Analysis Assignment HelpNumerical Analysis Assignment Help
Numerical Analysis Assignment Help
 
Scientific Computing II Numerical Tools & Algorithms - CEI40 - AGA
Scientific Computing II Numerical Tools & Algorithms - CEI40 - AGAScientific Computing II Numerical Tools & Algorithms - CEI40 - AGA
Scientific Computing II Numerical Tools & Algorithms - CEI40 - AGA
 
Inverse trig functions
Inverse trig functionsInverse trig functions
Inverse trig functions
 
Calculus academic journal (sample)
Calculus academic journal (sample)Calculus academic journal (sample)
Calculus academic journal (sample)
 
26 Computational Geometry
26 Computational Geometry26 Computational Geometry
26 Computational Geometry
 
Robotics_Final_Paper_Folza
Robotics_Final_Paper_FolzaRobotics_Final_Paper_Folza
Robotics_Final_Paper_Folza
 
Design and analysis of ra sort
Design and analysis of ra sortDesign and analysis of ra sort
Design and analysis of ra sort
 
AN EFFICIENT LINE CLIPPING ALGORITHM FOR CIRCULAR WINDOWS USING VECTOR CALCUL...
AN EFFICIENT LINE CLIPPING ALGORITHM FOR CIRCULAR WINDOWS USING VECTOR CALCUL...AN EFFICIENT LINE CLIPPING ALGORITHM FOR CIRCULAR WINDOWS USING VECTOR CALCUL...
AN EFFICIENT LINE CLIPPING ALGORITHM FOR CIRCULAR WINDOWS USING VECTOR CALCUL...
 
An Efficient Line Clipping Algorithm for Circular Windows Using Vector Calcul...
An Efficient Line Clipping Algorithm for Circular Windows Using Vector Calcul...An Efficient Line Clipping Algorithm for Circular Windows Using Vector Calcul...
An Efficient Line Clipping Algorithm for Circular Windows Using Vector Calcul...
 
AN EFFICIENT LINE CLIPPING ALGORITHM FOR CIRCULAR WINDOWS USING VECTOR CALCUL...
AN EFFICIENT LINE CLIPPING ALGORITHM FOR CIRCULAR WINDOWS USING VECTOR CALCUL...AN EFFICIENT LINE CLIPPING ALGORITHM FOR CIRCULAR WINDOWS USING VECTOR CALCUL...
AN EFFICIENT LINE CLIPPING ALGORITHM FOR CIRCULAR WINDOWS USING VECTOR CALCUL...
 
Hormann.2001.TPI.pdf
Hormann.2001.TPI.pdfHormann.2001.TPI.pdf
Hormann.2001.TPI.pdf
 

Dernier

1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
negromaestrong
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
PECB
 

Dernier (20)

Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Energy Resources. ( B. Pharmacy, 1st Year, Sem-II) Natural Resources
Energy Resources. ( B. Pharmacy, 1st Year, Sem-II) Natural ResourcesEnergy Resources. ( B. Pharmacy, 1st Year, Sem-II) Natural Resources
Energy Resources. ( B. Pharmacy, 1st Year, Sem-II) Natural Resources
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 

Atan2

  • 1. Atan2 1 Atan2 In a variety of computer languages, the function atan2 is the arctangent function with two arguments. The purpose of using two arguments instead of one, is to gather information of the signs of the inputs in order to return the appropriate quadrant of the computed angle, which is not possible for the single-argument arctangent function. For any real number (e.g., floating point) arguments x and y not both equal to zero, atan2(y, x) is the angle in radians between the positive x-axis of a plane and the point given by the coordinates (x, y) on it. The angle is positive for counter-clockwise angles (upper half-plane, y > 0), and negative for clockwise angles (lower half-plane, y < 0). The atan2 function was first introduced in computer programming languages, but now it is also common in other fields of science and engineering. It dates back at least as far as the FORTRAN programming language [1] and is currently found in C's math.h standard library, the Java Math library, .NET's System.Math (usable from C#, VB.NET, etc.), the Python math module, the Ruby Math module, and elsewhere. Many scripting languages, such as Perl, include the C-style atan2 function. [2] In mathematical terms, atan2 computes the principal value of the argument function applied to the complex number x+iy. That is, atan2(y, x) = Pr arg(x+iy) = Arg(x+iy). The argument can be changed by 2π (corresponding to a complete turn around the origin) without making any difference to the angle, but to define atan2 uniquely one uses the principal value in the range (−π, π]. That is, −π < atan2(y, x) ≤ π. The atan2 function is useful in many applications involving vectors in Euclidean space, such as finding the direction from one point to another. A principal use is in computer graphics rotations, for converting rotation matrix representations into Euler angles. In some computer programming languages, the order of the parameters is reversed (for example, in some spreadsheets) or a different name is used for the function (for example, Mathematica uses ArcTan[x,y]). On scientific calculators the function can often be calculated as the angle given when (x, y) is converted from rectangular coordinates to polar coordinates. Motivation The one-argument arctangent function can not distinguish between diametrically opposite directions. For example, the anticlockwise angle from the x-axis to the vector (1, 1), calculated in the usual way as arctan(1/1), is π/4 (radians), or 45°. However, the angle between the x-axis and the vector (−1, −1) appears, by the same method, to be arctan(−1/−1), again π/4, even though the answer clearly should be −3π/4, or −135°. The atan2 function takes into account the signs of both vector components, and places the angle in the correct quadrant. Thus, atan2(1, 1) = π/4 and atan2(−1, −1) = −3π/4. Additionally, the ordinary arctangent method breaks down when required to produce an angle of ±π/2 (or ±90°). For example, an attempt to find the angle between the x-axis and the vector (0, 1) requires evaluation of arctan(1/0), which fails on division by zero. In contrast, atan2(1, 0) gives the correct answer of π/2. When calculations are performed manually, the necessary quadrant corrections and exception handling can be done by inspection, but in computer programs it is extremely useful to have a single function that always gives an unambiguous correct result.
  • 2. Atan2 2 Definition and computation In terms of the standard arctan function, whose range is (−π/2, π/2), it can be expressed as follows: Notes: • This produces results in the range (−π, π], which can be mapped to [0, 2π) by adding 2π to negative results. •• Traditionally, atan2(0, 0) is undefined. • The C function atan2, and most other computer implementations, are designed to reduce the effort of transforming cartesian to polar coordinates and so always define atan2(0, 0). On implementations without signed zero, or when given positive zero arguments, it is normally defined as 0. It will always return a value in the range [−π, π] rather than raising an error or returning a NaN (Not a Number). • Systems supporting symbolic mathematics normally return an undefined value for atan2(0,0) or otherwise signal that an abnormal condition has arisen. • For systems implementing signed zero, infinities, or Not a Number (for example, IEEE floating point), it is common to implement reasonable extensions which may extend the range of values produced to include −π and −0. These also may return NaN or raise an exception when given a NaN argument. • For systems implementing signed zero (for example, IEEE floating point), atan2(-0, x), x < 0 returns the value −π. atan2(+0, x), x < 0 still returns +π. The free math library FDLIBM (Freely Distributable LIBM) available from netlib has source code showing how it implements atan2 including handling the various IEEE exceptional values. For systems without a hardware multiplier the function atan2 can be implemented in a numerically reliable manner by the CORDIC method. Thus implementations of atan(y) will probably choose to compute atan2(y,1). The following expression derived from the tangent half-angle formula can also be used to define atan2. This expression may be more suited for symbolic use than the definition above. However it is unsuitable for floating point computational use as it is undefined for y = 0, x < 0 and may overflow near these regions. The formula gives an NaN or raises an error for atan2(0, 0), but this is not an issue since atan2(0, 0) is not defined. A variant of the last formula is sometimes used in high precision computation. This avoids overflow but is always undefined when y = 0:
  • 3. Atan2 3 Variations and notation • In Common Lisp, where optional arguments exist, the atan function allows one to optionally supply the x coordinate: (atan y x). [3] • In Mathematica, the form ArcTan[x, y] is used where the one parameter form supplies the normal arctangent. Mathematica classifies ArcTan[0, 0] as an indeterminate expression. • In Microsoft Excel, the atan2 function has the two arguments reversed. [4] OpenOffice.org Calc also reverses the arguments, as does the Google Spreadsheets <atan2 function. [5] • In the Intel Architecture assembler code, atan2 is known as the FPATAN (floating-point partial arctangent) instruction. [6] It can deal with infinities and results lie in the closed interval [−π, π], e.g. atan2(∞, x) = +π. Particularly, FPATAN is defined when both arguments are zero: atan2(+0, +0) = +0 atan2(+0, −0) = +π atan2(−0, +0) = −0 atan2(−0, −0) = −π This definition is related to the concept of signed zero, i.e. • On most TI graphing calculators (excluding the TI-85 and TI-86), the equivalent function is called R►Pθ and has the arguments reversed. • In mathematical writings other than source code, such as in books and articles, the notations Arctan [7] and Tan -1[8] have been utilized; these are uppercase variants of the regular arctan and tan -1 . This usage is consistent with the complex argument notation, such that Atan(y, x) = Arg(x+iy).
  • 4. Atan2 4 Illustrations atan2 round a circle The diagram alongside shows values of atan2 at selected points on the unit circle. The values, in radians, are shown inside the circle. The diagram uses the standard mathematical convention that angles increase anticlockwise (counterclockwise), and zero is to the right. Note that the order of arguments is reversed; the function atan2(y, x) computes the angle corresponding to the point (x, y). The diagram below shows values of atan2 for points on the unit circle. On the x-axis is the complex angle of the points, starting from 0 ( point (1,0) ) and going anticlockwise (counterclockwise), through points: •• (0, 1) with complex angle π/2 (in radians), • (−1, 0) with complex angle π, • (0, −1) with complex angle 3π/2, to (1, 0) with complex angle 0 = (2nπ mod 2π). On this diagram one can clearly see the discontinuity of the atan2 function. [9] The diagrams below show 3D view of respectively atan2(y, x) and arctan(y/x) over a region of the plane. Note that for atan2, rays emanating from the origin have constant values, but for atan lines passing through the origin have constant values. For x > 0, the two diagrams give identical values.
  • 5. Atan2 5 Derivative As the function atan2 is a function of two variables, it has two partial derivatives. At points where these derivatives exist, atan2 is, except for a constant, equal to arctan(y/x). hence: for Informally representing the function atan2 as the angle function (which is only defined up to a constant) yields the following formula for the total derivative: While the function atan2 is discontinuous along the negative y-axis, reflecting the fact that angle cannot be continuously defined, this derivative is continuously defined except at the origin, reflecting the fact that infinitesimal (and indeed local) changes in angle can be defined everywhere except the origin. Integrating this derivative along a path gives the total change in angle over the path, and integrating over a closed loop gives the winding number. In the language of differential geometry, this derivative is a one-form, and it is closed (its derivative is zero) but not exact (it is not the derivative of a 0-form, i.e., a function), and in fact it generates the first de Rham cohomology of the punctured plane. This is the most basic example of such a form, and it is fundamental in differential geometry. The partial derivatives of atan2 do not contain trigonometric functions, making it particularly useful in many applications (e.g. embedded systems) where trigonometric functions can be expensive to evaluate.Wikipedia:Please clarify
  • 6. Atan2 6 References [2] The Linux Programmer's Manual (http://linux.die.net/man/3/atan2) says: "The atan2() function calculates the arc tangent of the two variables y and x. It is similar to calculating the arc tangent of y / x, except that the signs of both arguments are used to determine the quadrant of the result." [6] IA-32 Intel Architecture Software Developer’s Manual. Volume 2A: Instruction Set Reference, A-M, 2004. [7] http://books.google.com/books?id=2LIMMD9FVXkC&pg=PA234&dq=four+quadrant+inverse+tangent+mathematical+notation& hl=en&sa=X&ei=Q2Y4UaGTAcmzyAHsooCoBw&ved=0CDgQ6AEwAg#v=onepage& q=four%20quadrant%20inverse%20tangent%20mathematical%20notation&f=false [8] http://books.google.com/books?id=7nNjaH9B0_0C&pg=PA345&dq=four+quadrant+inverse+tangent+mathematical+notation& hl=en&sa=X&ei=Q2Y4UaGTAcmzyAHsooCoBw&ved=0CDIQ6AEwAQ#v=onepage& q=four%20quadrant%20inverse%20tangent%20mathematical%20notation&f=false [9] Computation of the external argument by Wolf Jung (http://www.mndynamics.com/indexp.html) External links • Java 1.6 SE JavaDoc (http://java.sun.com/javase/6/docs/api/java/lang/Math.html#atan2(double, double)) • atan2 (http://everything2.com/index.pl?node_id=1008481) at Everything2 • PicBasic Pro solution (http://www.picbasic.co.uk/forum/showthread.php?p=70269#post70269) atan2 for a PIC18F Other implementations/code for atan2 • Bearing Between Two Points (http://mathforum.org/library/drmath/view/55417.html) • Arctan and Polar Coordinates (http://mathforum.org/library/drmath/view/54114.html) • What's 'Arccos'? (http://mathforum.org/library/drmath/view/54172.html)
  • 7. Article Sources and Contributors 7 Article Sources and Contributors Atan2  Source: http://en.wikipedia.org/w/index.php?oldid=568349161  Contributors: 1exec1, 2620:0:1000:1502:6E3B:E5FF:FE1A:AFFC, Adam majewski, Anthony Appleyard, Apatterno, Arichnad, Armando, Army1987, ArnoldReinhold, Avraham, Balabiot, Basawala, Ben pcc, Betacommand, Bob K, CALR, CBM, Cheesefondue, Chowbok, CompuChip, Cooperised, Csc14us, DVdm, Daimanta, Davidhorman, Dcoetzee, Dhollm, Diegoaac, Dmcq, Drilnoth, Fgnievinski, Gandalf61, Gerbrant, GregorB, Hgilbert, Ian Vaughan, InverseHypercube, James Skinsale, Jfmantis, John Vandenberg, JohnOwens, Jvohn, KSmrq, Keenan Pepper, Kenyon, KlappCK, Kpengboy, Kri, Kuashio, Lukas Mach, MarkSweep, Maulattu, Mdd4696, Michael Hardy, Michel BUZE, Monsterman222, Mwarren us, Nbarth, Netheril96, NevemTeve, Nijdam, PAR, PreviousDeclaration, Quelt42, Quietbritishjim, Qwfp, R27182818, RahulWaghamare, Raise exception, Rgfibe, Rjamisolajr, Rjgodoy, Rumping, Simetrical, SimonP, Slawekb, Slithymatt, Stevenj, Superm401, Thonord, Tobias Bergemann, Unbitwise, Utopianheaven, V1adis1av, Vadmium, Yuzisee, 谢弘, 102 anonymous edits Image Sources, Licenses and Contributors File:Atan2 60.svg  Source: http://en.wikipedia.org/w/index.php?title=File:Atan2_60.svg  License: Creative Commons Attribution-Sharealike 3.0  Contributors: Dmcq File:Atan2-discontinuity.svg  Source: http://en.wikipedia.org/w/index.php?title=File:Atan2-discontinuity.svg  License: Creative Commons Attribution-Sharealike 3.0  Contributors: Atan2.PNG: Adam majewski derivative work: Kpengboy (talk) Image:Atan2Diagram.png  Source: http://en.wikipedia.org/w/index.php?title=File:Atan2Diagram.png  License: Public Domain  Contributors: Self. Image:AtanDiagram.png  Source: http://en.wikipedia.org/w/index.php?title=File:AtanDiagram.png  License: Public Domain  Contributors: Self. License Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/