Signatur
Beschreibung
Math.tan() berechnet den Tangens des übergebenen Winkels. Der Tangens ist das Verhältnis von Gegenkathete zu Ankathete im rechtwinkligen Dreieck und entspricht Math.sin(x) / Math.cos(x). Da tan eine statische Methode von Math ist, ruft man sie immer als Math.tan() auf. Math ist kein Konstruktor.
Der Winkel muss in Bogenmaß angegeben werden, nicht in Grad. Einen Gradwert rechnet man mit grad * Math.PI / 180 um. Typische Einsatzgebiete sind Höhen- und Entfernungsberechnungen, Steigungen und Gefälle, die Projektion in 2D- und 3D-Grafik (z. B. das Sichtfeld einer Kamera) sowie Animationen im Canvas.
Der Tangens ist periodisch mit der Periode π. An den Stellen π/2 + k·π ist er mathematisch nicht definiert. Weil sich π als Gleitkommazahl nicht exakt darstellen lässt, liefert Math.tan(Math.PI / 2) jedoch kein Infinity, sondern einen sehr großen endlichen Wert.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $x Pflicht | number | Winkel in Bogenmaß. Andere Werte werden mit Number() in eine Zahl umgewandelt. |
Rückgabewert
x. Ist x gleich Infinity, -Infinity oder NaN, ist das Ergebnis NaN. 0 und -0 werden mit ihrem Vorzeichen zurückgegeben.Beispiele
Grundlegende Werte
console.log(Math.tan(0));
console.log(Math.tan(1));
console.log(Math.tan(Math.PI / 4)); // theoretisch 1
console.log(Math.tan(Infinity));
console.log(Math.tan("1")); // String wird umgewandelt
Hilfsfunktion für Winkel in Grad
const tanDeg = (grad) => Math.tan((grad * Math.PI) / 180);
console.log(tanDeg(45).toFixed(4));
console.log(tanDeg(60).toFixed(4));
Höhe eines Gebäudes aus Entfernung und Blickwinkel
const tanDeg = (grad) => Math.tan((grad * Math.PI) / 180);
const entfernung = 50; // Meter bis zum Gebäude
const winkel = 30; // Höhenwinkel zur Dachkante in Grad
const hoehe = entfernung * tanDeg(winkel);
console.log(`Gebäudehöhe: ${hoehe.toFixed(2)} m`);
Steigungswinkel in Prozent umrechnen
const steigungInProzent = (grad) =>
(Math.tan((grad * Math.PI) / 180) * 100).toFixed(1);
console.log(`${steigungInProzent(5)} %`);
console.log(`${steigungInProzent(45)} %`);
// Wichtig · Fallstricke
- Bogenmaß statt Grad: Der häufigste Fehler ist ein Gradwert als Argument.
Math.tan(45)ergibt1.6197751905438615, nicht1. - Polstellen:
Math.tan(Math.PI / 2)liefert16331239353195370stattInfinity. Werte nahe den Polstellen deshalb gezielt abfangen, z. B. mitMath.abs(Math.cos(x)) < Number.EPSILON. - Rundungsfehler: Ergebnisse wie
0.9999999999999999sind bei Gleitkommazahlen normal. Werte deshalb nicht mit===vergleichen, sondern mit einer Toleranz oder nach dem Runden (toFixed()). - Genauigkeit je nach Engine: Die Spezifikation schreibt keine bitgenauen Ergebnisse vor. Die letzten Nachkommastellen können sich daher zwischen Browsern bzw. Engines unterscheiden.
- Die Umkehrfunktion ist
Math.atan(). Wenn man einen Winkel aus zwei Koordinaten berechnen will, istMath.atan2(y, x)besser geeignet, weil es den richtigen Quadranten berücksichtigt. - Für
BigInt-Werte wirftMath.tan()einenTypeError.