atan2()

Baseline 2023
Newly available

Since March 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Die atan2() CSS Funktion ist eine trigonometrische Funktion, die den Arkustangens von zwei Werten zwischen -infinity und infinity zurückgibt. Die Funktion akzeptiert zwei Argumente und gibt die Anzahl der Bogenmaß zurück, die einen <angle> zwischen -180deg und 180deg darstellt.

Syntax

css
/* 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));

Parameter

Die Funktion atan2(y, x) akzeptiert zwei durch Kommas getrennte Werte als Parameter. Jeder Wert kann ein <number>, eine <dimension> oder ein <percentage> sein. Beide Werte müssen vom selben Typ sein, obwohl sie, wenn sie <dimension> sind, unterschiedliche Einheiten haben können (zum Beispiel: atan2(100px, 5vw) ist gültig).

y

Die y-Koordinate des Punktes. Eine Berechnung, die zu einem <number>, einer <dimension> oder einem <percentage> aufgelöst wird.

x

Die x-Koordinate des Punktes. Eine Berechnung, die zu einem <number>, einer <dimension> oder einem <percentage> aufgelöst wird.

Rückgabewert

Gegeben zwei Werte x und y, berechnet und gibt die Funktion atan2(y, x) den <angle> zwischen der positiven x-Achse und dem Strahl vom Ursprung zu dem Punkt (x, y) zurück.

Formale Syntax

<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

Beispiele

Elemente drehen

Die atan2() Funktion kann verwendet werden, um Elemente mit rotate zu drehen, da sie einen <angle> zurückgibt.

HTML

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

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));
}

Ergebnis

Spezifikationen

Specification
CSS Values and Units Module Level 4
# trig-funcs

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
atan2()

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

Siehe auch