Trigonometrische Berechnungen
Berechnet aus zwei Seiten eines rechtwinkligen Dreiecks alle übrigen Werte: dritte Seite, Winkel, Sinus, Kosinus, Tangens, Höhe und Fläche.
Ein User mit dem Namen „Vollautomatisch" hat uns dieses Javascript eingeschickt. Es nimmt euch die komplette Rechenarbeit an einem rechtwinkligen Dreieck ab: Aus zwei bekannten Seiten berechnet es die dritte Seite, die beiden spitzen Winkel α und β samt Sinus, Kosinus und Tangens, die Höhe auf der Hypotenuse, die Hypotenusenabschnitte p und q sowie den Flächeninhalt.
Zur Bedienung: Tragt in genau zwei der drei Seitenfelder einen Wert ein — a und b sind die Katheten (die Seiten am rechten Winkel), c ist die Hypotenuse (die längste Seite, dem rechten Winkel gegenüber). Ins vierte Feld kommt die Maßeinheit (vorbelegt ist cm), sie wird nur für die Ausgabe verwendet. Ein Klick auf „Berechnen" zeigt dann alle Werte auf einmal an; Nachkommastellen könnt ihr mit Komma oder Punkt eingeben.
Rechnerisch steckt vor allem der Satz des Pythagoras dahinter: In jedem rechtwinkligen Dreieck gilt a² + b² = c². Damit lässt sich aus zwei Seiten immer die dritte bestimmen. Die Winkel liefert anschließend die Arkuskosinus-Funktion, die Umkehrung des Kosinus. Wichtig: c muss wirklich die längste Seite sein — gebt ihr für c einen kleineren Wert als für eine Kathete ein, meldet das Script den Fehler, statt Unsinn auszurechnen.
Wer allgemeine Dreiecke (auch ohne rechten Winkel) berechnen will, findet im Archiv den Dreiecksrechner; nur für den Flächeninhalt gibt es außerdem die Flächenberechnung Dreieck.
Genau zwei der drei Seiten angeben — die dritte wird berechnet.
So funktioniert das Script
Das Script hat vier Abschnitte: Es prüft die Eingaben, ergänzt die fehlende Seite mit dem Satz des Pythagoras, berechnet daraus Winkel, Höhe und Fläche und baut zum Schluss den Ausgabetext zusammen. Alles steckt in einer sofort ausgeführten Funktion, damit die Variablennamen nicht mit anderen Scripts auf der Seite kollidieren.
const anzahl = [eingabeA, eingabeB, eingabeC].filter(function (e) {
return e !== "";
}).length;
Zuerst wird gezählt, wie viele Seitenfelder ausgefüllt sind. Die drei Eingaben stehen in einem Array, und filter() behält nur die Einträge, die nicht leer sind — .length ist dann die Anzahl der Angaben. Sind es nicht genau zwei, erscheint eine freundliche Meldung in der Ergebnisfläche und return beendet die Funktion, ohne weiterzurechnen.
if (eingabeA === "") a = Math.sqrt(c * c - b * b);
if (eingabeB === "") b = Math.sqrt(c * c - a * a);
if (eingabeC === "") c = Math.sqrt(a * a + b * b);
Hier steckt der Satz des Pythagoras: a² + b² = c². Je nachdem, welches Feld leer geblieben ist, wird die passende Umstellung der Formel benutzt und die Wurzel mit Math.sqrt() gezogen. Fehlt etwa die Hypotenuse c, rechnet das Script Wurzel aus a² + b².
if (c <= a || c <= b) {
ausgabe.textContent = "Die Strecke c ist nicht die längste Seite …";
return;
}
Die Hypotenuse ist immer die längste Seite eines rechtwinkligen Dreiecks. Ist der eingegebene Wert für c kleiner oder gleich einer Kathete, kann das Dreieck so nicht existieren — das Script bricht mit einer Fehlermeldung ab. Dieser Fall greift auch, wenn durch unmögliche Werte in der Wurzel ein NaN („Not a Number") entstanden ist.
const alpha = Math.acos(cosAlpha) * 180 / Math.PI;
Der Kosinus von α ist im rechtwinkligen Dreieck Ankathete durch Hypotenuse, also b / c. Die Umkehrfunktion Math.acos() macht daraus wieder den Winkel — allerdings im Bogenmaß (Radiant). Die Multiplikation mit 180 / Math.PI rechnet ins vertraute Gradmaß um. γ ist im rechtwinkligen Dreieck immer 90°, das muss nicht berechnet werden.
const p = (a * a) / c;
const q = (b * b) / c;
const hoehe = Math.sqrt(p * q);
const flaeche = (a * b) / 2;
Die Hypotenusenabschnitte p und q folgen aus dem Kathetensatz (a² = c · p), die Höhe aus dem Höhensatz (h² = p · q). Der Flächeninhalt eines rechtwinkligen Dreiecks ist einfach das halbe Produkt der beiden Katheten.
function runde(zahl, stellen) {
const faktor = Math.pow(10, stellen);
return String(Math.round(zahl * faktor) / faktor).replace(".", ",");
}
Die Hilfsfunktion rundet auf eine wählbare Zahl von Nachkommastellen: Erst wird die Zahl mit einer Zehnerpotenz multipliziert, dann mit Math.round() gerundet und wieder geteilt. Das abschließende replace(".", ",") macht aus dem englischen Dezimalpunkt das deutsche Komma. Die Seiten werden mit 4, die Winkelfunktionen mit 5 Stellen ausgegeben — wollt ihr mehr oder weniger Genauigkeit, ändert einfach diese Zahlen in den runde(…)-Aufrufen.
Zum Anpassen eignet sich außerdem der Ausgabeblock: Braucht ihr etwa Sinus und Kosinus nicht, löscht einfach die entsprechenden text += …-Zeilen — an der Rechnung ändert das nichts.
Script für die eigene Homepage
Kopiert euch den kompletten Code und fügt ihn an der Stelle eurer Seite ein, an der das Script erscheinen soll. Er läuft ohne weitere Dateien und ohne fremde Server.
Mehr aus der Kategorie Mathematik
-
5 Zahlen
-
Altersberechnungen
-
Anzahl der Stellen von Potenzen kalkulieren
-
Barrel in Liter
-
Beliebige Wurzel ziehen
-
Binomialverteilung
-
Collatz Problem
-
Denk Dir eine Zahl
-
Dezimalbruch
-
Dezimalzahl in Binärzahl umwandeln
-
Die Kamelhändler
-
Downloadzeit-Rechner
-
Drehender Kreis 1
-
Drehender Kreis 2
-
Drehender Kreis 3
-
Dreiecksrechner
-
Dreisatz
-
Dreisatz antiproportional
-
Einfacher Euro-Rechner
-
Fakultät berechnen
-
Fakultätsrechner
-
Fibonacci Reihe berechnen
-
Fibonacci-Zahlen
-
Flächenberechnung / Dreieck
-
Flächenberechnung / Kreis
-
Flächenberechnung / Parallelogramm
-
Flächenberechnung / Rechteck
-
Flächenberechnung / Trapez
-
Gedanken lesen
-
Geschwindigkeitsmesser