Spec-Zone.ru › CSS

atan2()

Базовая линия 2023

Новое

С марта 2023 года эта функция работает на последних устройствах и версиях браузеров. Возможно, она не будет работать на старых устройствах или браузерах.

  • Узнать больше
  • Показать полную совместимость
  • Отправить отзыв

Функция CSS CSS atan2() — это тригонометрическая функция, которая возвращает обратный тангенс двух значений в промежутке от -infinity до infinity. Функция принимает два аргумента и возвращает число радиан, представляющее <angle> между -180deg и 180deg.

Синтаксис

/* Two <number> values */
transform: rotate(atan2(3, 2));

/* Two <dimension> values */
transform: rotate(atan2(1rem, -0.5rem));

/* Two <percentage> values */
transform: rotate(atan2(20%, -30%));

/* Other values */
transform: rotate(atan2(pi, 45));
transform: rotate(atan2(e, 30));

Параметры

Функция atan2() принимает два значения, разделенные запятой, в качестве параметров. Каждое значение может быть <number>, <dimension> или <percentage>. Оба значения должны быть одного типа, хотя если они являются <dimension>, они могут иметь разные единицы (например, atan2(100px, 5vw) допустимо).

y

Координата y точки. Вычисление, которое приводит к <number>, <dimension> или <percentage>.

x

Координата x точки. Вычисление, которое приводит к <number>, <dimension> или <percentage>.

Возвращаемое значение

Учитывая два значения x и y, функция atan2(y, x) вычисляет и возвращает <angle> между положительной осью x и лучом из начала координат к точке (x, y).

Формальный синтаксис

<atan2()> = 
atan2( <calc-sum> , <calc-sum> )

<calc-sum> =
<calc-product> [ [ '+' | '-' ] <calc-product> ]*

<calc-product> =
<calc-value> [ [ '*' | '/' ] <calc-value> ]*

<calc-value> =
<number> |
<dimension> |
<percentage> |
<calc-keyword> |
( <calc-sum> )

<calc-keyword> =
e |
pi |
infinity |
-infinity |
NaN

Примеры

Поворот элементов

Функция atan2() может использоваться для rotate элементов, так как она возвращает <angle>.

HTML

<div class="box box-1"></div>
<div class="box box-2"></div>
<div class="box box-3"></div>
<div class="box box-4"></div>
<div class="box box-5"></div>

CSS

div.box {
  width: 100px;
  height: 100px;
  background: linear-gradient(orange, red);
}
div.box-1 {
  transform: rotate(atan2(3, 2));
}
div.box-2 {
  transform: rotate(atan2(3%, -2%));
}
div.box-3 {
  transform: rotate(atan2(-1, 0.5));
}
div.box-4 {
  transform: rotate(atan2(1, 0.5));
}
div.box-5 {
  transform: rotate(atan2(1rem, -0.5rem));
}

Результат

Спецификации

Спецификация
CSS Values and Units Module Level 4
# trig-funcs

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet WebView Android
atan2 111 111 108 97 15.4 111 108 75 15.4 22.0 111

См. также

  • sin()
  • cos()
  • tan()
  • asin()
  • acos()
  • atan()

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/atan2

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API