std::atan2
性病:atan 2
Defined in header | | |
---|---|---|
float atan2( float y, float x | (1) | |
double atan2( double y, double x | (2) | |
long double atan2( long double y, long double x | (3) | |
Promoted atan2( Arithmetic1 y, Arithmetic2 x | (4) | (since C++11) |
的弧切线的计算y/x
使用参数的符号来确定正确的象限。
4%29一组过载或函数模板,用于1-3%29未涵盖的算术类型的所有参数组合。如果有任何争论积分型,它被铸造成double
.如果有任何争论long double
,则返回类型Promoted
也是long double
,否则返回类型总是double
...
参数
x, y | - | values of floating-point or integral types |
---|
返回值
如果没有错误发生,则将y/x
28arctan%28
Y型
*。
X
29%%29在范围内-π;+π弧度,被归还。
Y论点
返回值
二次
二次
X参数
如果发生域错误,则返回支持%29的实现定义值%28 NaN。
如果由于下流而发生范围错误,则返回舍入%29后的正确结果%28。
错误处理
错误按数学[医]错误处理...
域错误可能发生在x
和y
都是零。
如果实现支持ieee浮点算法%28IEC 60559%29,
- 如果
x
和y
都是零,域错误不
发生
- 如果
x
和y
都为零,也不会发生距离错误。
- 如果
y
为零,则不发生极差。
- 如果
y
是±0
和x
是否定的或-0
,,,±π
返回
- 如果
y
是±0
和x
是积极的或+0
,,,±0
返回
- 如果
y
是±∞
和x
是有限的,±π/2
返回
- 如果
y
是±∞
和x
是-∞
,,,±3π/4
返回
- 如果
y
是±∞
和x
是+∞
,,,±π/4
返回
- 如果
x
是±0
和y
是阴性的,-π/2
返回
- 如果
x
是±0
和y
是积极的,+π/2
返回
- 如果
x
是-∞
和y
是有限的和正的,+π
返回
- 如果
x
是-∞
和y
是有限的和负的,-π
返回
- 如果
x
是+∞
和y
是有限的和正的,+0
返回
- 如果
x
是+∞
和y
是有限的和负的,-0
返回
- 如果
x
是南还是y
是南,南回来了
注记
std::atan2(y, x)等于std::arg(std::complex<double>(x,y))...
POSIX指定如果是地下水流,y/x
是返回的值,如果不支持,则实现定义的值不大于dbl。[医]敏·弗利特[医]和LDBL[医]民回来了。
例
二次
#include <iostream>
#include <cmath>
int main()
{
// normal usage: the signs of the two arguments determine the quadrant
std::cout << "(+1,+1) cartesian is (" << hypot(1,1)
<< ',' << atan2(1,1) << ") polar\n" // atan2(1,1) = +pi/4, Quad I
<< "(+1,-1) cartesian is (" << hypot(1,-1)
<< ',' << atan2(1,-1) << ") polar\n" // atan2(1, -1) = +3pi/4, Quad II
<< "(-1,-1) cartesian is (" << hypot(-1,-1)
<< ',' << atan2(-1,-1) << ") polar\n" // atan2(-1,-1) = -3pi/4, Quad III
<< "(-1,+1) cartesian is (" << hypot(-1,1)
<< ',' << atan2(-1,1) << ") polar\n"; // atan2(-1,-1) = -pi/4, Quad IV
// special values
std::cout << "atan2(0, 0) = " << atan2(0,0)
<< " atan2(0,-0) = " << atan2(0,-0.0) << '\n'
<< "atan2(7, 0) = " << atan2(7,0)
<< " atan2(7,-0) = " << atan2(7,-0.0) << '\n';
}
二次
产出:
二次
(+1,+1) cartesian is (1.41421,0.785398) polar
(+1,-1) cartesian is (1.41421,2.35619) polar
(-1,-1) cartesian is (1.41421,-2.35619) polar
(-1,+1) cartesian is (1.41421,-0.785398) polar
atan2(0, 0) = 0 atan2(0,-0) = 3.14159
atan2(7, 0) = 1.5708 atan2(7,-0) = 1.5708
二次
另见
asin | computes arc sine (arcsin(x)) (function) |
---|---|
acos | computes arc cosine (arccos(x)) (function) |
atan | computes arc tangent (arctan(x)) (function) |
arg | returns the phase angle (function template) |
atan2(std::valarray) | applies the function std::atan2 to a valarray and a value (function template) |
c关于atan的文件2
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。