Последнее обновление
ATAN2
Описание
Возвращает арктангенс отношения 'y' / 'x'.
Синтаксис
ATAN2(<y>, <x>)
Параметры
| Параметр | Описание |
|---|---|
<x> | Значение, представляющее горизонтальное расстояние (координату) от начала координат (0,0) вдоль оси x. |
<y> | Значение, представляющее вертикальное расстояние (координату) от начала координат (0,0) вдоль оси y. |
Возвращаемое значение
Значение atan2 для отношения параметров y / x.
Особые случаи
- Если
yилиxимеет значение NaN, возвращается NaN - Если
x > 0иy = ±0.0, возвращается ±0 (знак совпадает со знакомy) - Если
x = 0.0(+0.0 или -0.0) иy > 0, возвращается π/2 (приблизительно 1.570796326794897) - Если
x = 0.0(+0.0 или -0.0) иy < 0, возвращается -π/2 (приблизительно -1.570796326794897) - Если
x < 0иy = +0.0, возвращается π (приблизительно 3.141592653589793); еслиx < 0иy = -0.0, возвращается -π - Если
y = +Infinityиxимеет конечное значение, возвращается π/2; еслиy = -Infinityиxимеет конечное значение, возвращается -π/2 - Если
y = +Infinityиx = +Infinity, возвращается π/4 (приблизительно 0.7853981633974483) - Если
y = -Infinityиx = +Infinity, возвращается -π/4 (приблизительно -0.7853981633974483) - Если
y = +Infinityиx = -Infinity, возвращается 3π/4 (приблизительно 2.356194490192345) - Если
y = -Infinityиx = -Infinity, возвращается -3π/4 (приблизительно -2.356194490192345) - Если
x = +Infinityи конечное значениеy> 0, возвращается 0; если конечное значениеy< 0, возвращается -0 - Если
x = -Infinityи конечное значениеy> 0, возвращается π; если конечное значениеy< 0, возвращается -π - Если
yилиxимеет значение NULL, возвращается NULL
Примеры
select atan2(0.1, 0.2);
+---------------------+
| atan2(0.1, 0.2) |
+---------------------+
| 0.46364760900080609 |
+---------------------+
select atan2(1.0, 1.0);
+---------------------+
| atan2(1.0, 1.0) |
+---------------------+
| 0.78539816339744828 |
+---------------------+
select atan2(cast('nan' as double), 1.0);
+----------------------------------+
| atan2(cast('nan' AS DOUBLE), 1.0)|
+----------------------------------+
| NaN |
+----------------------------------+
select atan2(1.0, cast('nan' as double));
+----------------------------------+
| atan2(1.0, cast('nan' AS DOUBLE))|
+----------------------------------+
| NaN |
+----------------------------------+
select atan2(0.0, 1.0);
+----------------+
| atan2(0.0, 1.0)|
+----------------+
| 0 |
+----------------+
select atan2(-0.0, 1.0);
+-----------------+
| atan2(-0.0, 1.0)|
+-----------------+
| -0 |
+-----------------+
select atan2(0.0, -1.0);
+-----------------+
| atan2(0.0, -1.0)|
+-----------------+
| 3.141592653589793|
+------------------+
select atan2(-0.0, -1.0);
+------------------+
| atan2(-0.0, -1.0)|
+------------------+
| -3.141592653589793|
+-------------------+
select atan2(1.0, 0.0);
+----------------+
| atan2(1.0, 0.0)|
+----------------+
| 1.570796326794897 |
+--------------------+
select atan2(-1.0, 0.0);
+-----------------+
| atan2(-1.0, 0.0)|
+-----------------+
| -1.570796326794897 |
+---------------------+
select atan2(cast('inf' as double), cast('-inf' as double));
+--------------------------------------------+
| atan2(cast('inf' AS DOUBLE), cast('-inf' AS DOUBLE)) |
+--------------------------------------------+
| 2.356194490192345 |
+--------------------------------------------+
select atan2(cast('-inf' as double), cast('inf' as double));
+-------------------------------------------+
| atan2(cast('-inf' AS DOUBLE), cast('inf' AS DOUBLE)) |
+-------------------------------------------+
| -0.7853981633974483 |
+-------------------------------------------+
select atan2(1.0, cast('-inf' as double));
+----------------------------------+
| atan2(1.0, cast('-inf' AS DOUBLE))|
+----------------------------------+
| 3.141592653589793 |
+----------------------------------+
select atan2(-1.0, cast('inf' as double));
+---------------------------------+
| atan2(-1.0, cast('inf' AS DOUBLE))|
+---------------------------------+
| -0 |
+---------------------------------+