Navigation
 Startseite
 Fachbücher
 Anzeigenmarkt
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Lernpfade
 Webhoster Vergleich
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 Unit Test Generator
 TLD Liste
 Webkatalog‑Verzeichnis

Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains...
https://www.Hosterplus.de
Artfiles.de
Bietet Serviceorientierte...
https://www.Artfiles.de
 
 
 

PHP Trigonometrie: sin, cos, tan, deg2rad in der Praxis

Sie befinden sich: Home > Php Tutorial > PHP Trigonometrie: sin, cos...

PHP Trigonometrie: sin, cos, tan, deg2rad in der Praxis
Eintrag am:
21.07.2026
Hits / Besucher:
21
Sprache:
  Deutsch
Tutorial Art:
eigenes
Eingetragen von:
Merkliste:
 
Beschreibung

Trigonometrie klingt nach reiner Mathematik, steckt in der Praxis aber in vielen ganz konkreten Aufgaben: der Position eines Uhrzeigers, der Luftlinie zwischen zwei GPS-Punkten oder einer Sinus-Welle für ein Diagramm. Grundlage ist immer der Wert von Pi zusammen mit den Winkelfunktionen. Dieses Tutorial zeigt, wie du in PHP mit pi(), M_PI sowie sin(), cos(), tan() und deg2rad() zuverlässig rechnest.

pi() Funktion und Konstante M_PI

Wer in PHP mit Winkeln, Geo-Koordinaten oder Visualisierungen arbeitet, braucht früher oder später den Wert von Pi und die Trigonometrie-Funktionen sin(), cos() und tan(). PHP pi ist dabei in zwei äquivalenten Varianten verfügbar: einmal als Funktion pi(), einmal als Konstante M_PI. Beide liefern denselben Float-Wert mit Double-Präzision.

Illustration zum Tutorial: PHP Trigonometrie: sin, cos, tan, deg2rad in der Praxis

Bevor die Trigonometrie-Funktionen ins Spiel kommen, lohnt sich ein Blick darauf, wie Pi in PHP überhaupt zur Verfügung steht.

<?php

echo M_PI; /* 3.1415926535898 */
echo pi(); /* identisch */
var_dump(M_PI === pi()); /* bool(true) */

Im Code sieht man beide Varianten. Die Konstante M_PI ist minimal schneller, weil PHP sie zur Compile-Zeit auflöst. Die Funktion pi() ist marginal lesbarer für alle, die M_*-Konstanten nicht im Kopf haben. Wichtige weitere mathematische Konstanten sind M_E (Eulersche Zahl), M_PI_2 (Pi/2) und M_PI_4 (Pi/4). Eine vollständige Übersicht findet sich in der PHP-Dokumentation unter "Vordefinierte mathematische Konstanten". Wer eigene Konstanten ergänzen will, definiert sie mit define().

Grad zu Radiant: deg2rad und rad2deg richtig nutzen

Trigonometrie-Funktionen in PHP arbeiten ausschliesslich mit Radiant, nicht mit Grad. Das ist eine der häufigsten Stolperfallen für Einsteiger. Wer sin(45) schreibt, bekommt nicht den erwarteten Wert von ungefähr 0.707, sondern den Sinus von 45 Radiant, was etwa 0.851 entspricht. Mit deg2rad() und rad2deg() lässt sich zwischen den Einheiten umrechnen.

<?php

$winkel = [0, 30, 45, 60, 90, 180];

foreach ($winkel as $grad) {
$rad = deg2rad($grad);
printf("%3d Grad = %.4f rad | sin=%.4f | cos=%.4f\n",
$grad, $rad, sin($rad), cos($rad));
}
/*
0 Grad = 0.0000 rad | sin=0.0000 | cos=1.0000
30 Grad = 0.5236 rad | sin=0.5000 | cos=0.8660
45 Grad = 0.7854 rad | sin=0.7071 | cos=0.7071
60 Grad = 1.0472 rad | sin=0.8660 | cos=0.5000
90 Grad = 1.5708 rad | sin=1.0000 | cos=0.0000
180 Grad = 3.1416 rad | sin=0.0000 | cos=-1.0000
*/

Der Umrechnungsfaktor ist M_PI / 180. Wer deg2rad() nicht nutzen will, schreibt $winkel * M_PI / 180. Beide Varianten liefern dasselbe Ergebnis, die Funktionsvariante ist aber besser lesbar und macht im Code-Review klar, was passiert.

sin, cos und tan am Einheitskreis mit PHP pi

Wer PHP pi anwendet, kommt um den Einheitskreis nicht herum. Der Einheitskreis ist die didaktische Grundlage. Ein Punkt auf einem Kreis mit Radius 1 hat die Koordinaten (cos(winkel), sin(winkel)). Bei 0 Grad sitzt der Punkt rechts auf dem Kreis (cos=1, sin=0), bei 90 Grad oben (cos=0, sin=1), bei 180 Grad links (cos=-1, sin=0). Diese Logik wird gleich praktisch beim Berechnen von Uhrzeigern oder Diagramm-Punkten.

tan() ist sin / cos und steigt zwischen 0 und 90 Grad gegen unendlich. Bei genau 90 Grad gibt es eine mathematische Singularität, die in PHP zu einer sehr großen Float-Zahl führt, weil cos(M_PI / 2) nicht exakt 0 ist, sondern eine winzige Float-Rest. Das macht tan(M_PI / 2) zu einer extrem großen Zahl, aber nicht zu einem echten Fehler.

<?php

echo tan(deg2rad(45)); /* ungefaehr 1 */
echo tan(deg2rad(89)); /* ungefaehr 57 */
echo tan(deg2rad(90)); /* extrem grosse Zahl, 1.6e+16 */

Wer einen Winkel aus zwei Koordinaten zurückrechnen will, sollte atan2(y, x) statt atan(y / x) nutzen. atan2() gibt das Vorzeichen beider Argumente korrekt aus und liefert einen Winkel im ganzen Vollkreis (-Pi bis +Pi).

Stundenzeiger einer analogen Uhr mit PHP pi berechnen

Ein klassisches Beispiel für PHP pi in der Praxis ist die Position eines Uhrzeigers auf einem Zifferblatt. Die 12 sitzt oben, die 3 rechts, die 6 unten, die 9 links. Pro Stunde geht der Zeiger um 30 Grad weiter. Im SVG-Koordinatensystem zeigt die positive y-Achse nach unten, daher wird der Winkel um 90 Grad zurückgedreht.

<?php

function zeigerPosition(int $stunde, int $radius = 100): array
{
/* 12 Uhr ist oben (-90 Grad), pro Stunde 30 Grad */
$winkel = deg2rad(($stunde * 30) - 90);

return [
'x' => round($radius * cos($winkel), 2),
'y' => round($radius * sin($winkel), 2),
];
}

print_r(zeigerPosition(3));
/* x=100, y=0 (3 Uhr ist rechts) */

print_r(zeigerPosition(6));
/* x=0, y=100 (6 Uhr ist unten) */

Mit dieser Funktion lassen sich SVG-Linien für alle 12 Stunden zeichnen, animierte Uhrzeiger oder Tortendiagramme bauen. Die gleiche Logik trifft auf Charts mit Polarkoordinaten zu: Jeder Datenpunkt landet auf einem Kreisbogen, dessen Position aus cos und sin errechnet wird.

flowchart TD
    A[Winkel in Grad] --> B[deg2rad konvertieren]
    B --> C{Funktion?}
    C -->|sin| D[Sinus-Wert]
    C -->|cos| E[Cosinus-Wert]
    C -->|tan| F[Tangens-Wert]
    D --> G[Visualisierung]
    E --> G
    F --> G

Geo-Distanz mit der Haversine-Formel und PHP pi

Das praxisrelevanteste Beispiel für PHP pi ist die Haversine-Formel zur Berechnung der Distanz zwischen zwei GPS-Punkten. Die Formel nimmt an, dass die Erde eine Kugel ist, was für praktische Zwecke völlig ausreicht. Der Erdradius beträgt rund 6371 Kilometer.

<?php

function geoDistanz(float $lat1, float $lon1, float $lat2, float $lon2): float
{
$R = 6371; /* Erdradius in km */

$lat1Rad = deg2rad($lat1);
$lat2Rad = deg2rad($lat2);
$dLat = deg2rad($lat2 - $lat1);
$dLon = deg2rad($lon2 - $lon1);

$a = sin($dLat / 2) ** 2
+ cos($lat1Rad) * cos($lat2Rad) * sin($dLon / 2) ** 2;
$c = 2 * asin(sqrt($a));

return $R * $c;
}

/* Berlin -> Hamburg */
echo round(geoDistanz(52.52, 13.405, 53.55, 9.99), 1);
/* ungefaehr 255.5 km */

Die Funktion arbeitet mit sin, cos, asin (arcsin) und sqrt aus dem PHP-Math-Grundlagen-Tutorial. Sie liefert die Luftlinie zwischen den beiden Punkten in Kilometern. Wer Meilen will, ersetzt 6371 durch 3959. Für ein Liefer-Tool, das die nächstgelegenen Filialen zur Postleitzahl findet, ist diese Funktion alles, was man braucht. In Kombination mit einer Datenbank-Tabelle voller Filial-Koordinaten reicht eine simple Schleife mit Sortierung nach Distanz.

Sinus-Wellen für Visualisierungen mit PHP pi erzeugen

PHP pi bildet die Grundlage für jede Wellenformel. Wer Demo-Daten für Diagramme braucht oder einfache Audio-Wellenformen visualisieren will, generiert in einer Schleife einen Sinus.

<?php

$punkte = [];
for ($grad = 0; $grad < 360; $grad += 10) {
$punkte[$grad] = round(sin(deg2rad($grad)), 3);
}

print_r($punkte);
/* Array ( [0] => 0 [10] => 0.174 [20] => 0.342 ... ) */

Mit dieser Schleife entstehen 36 Punkte, die einen vollen Sinus-Schwung beschreiben. Wer eine Dämpfung will (gedämpfte Schwingung), multipliziert den sin-Wert mit einem zeitabhängigen Faktor wie exp(-$t / 100). Wer mehrere Frequenzen überlagern will (Akkord, FM-Synthesis), addiert mehrere Sinus-Werte mit unterschiedlichen Faktoren auf den Winkel.

Stolperfallen und Genauigkeit bei PHP pi

Beim Arbeiten mit PHP pi gibt es ein paar typische Fallen. Drei Punkte sind in der Praxis wichtig. Erstens: Die Funktionen erwarten Radiant, nie Grad. Wer das vergisst, bekommt scheinbar zufällige Werte. Zweitens: Float-Präzision. Sin und cos liefern bei mathematisch genau 0 oder 1 gelegentlich Werte wie 1.2246e-16. Das ist normaler Float-Rauschen und kein Bug. Wer sehr genaue Vergleiche braucht, prüft mit Toleranz: abs($wert) < 1e-10 statt $wert === 0.0.

Drittens: tan(90 Grad) und allgemein die Singularitäten der Tangens-Funktion. Statt tan() direkt zu nutzen, sollte man bei Winkelberechnungen meist atan2() einsetzen, weil sie über den ganzen Vollkreis robust funktioniert und das richtige Vorzeichen liefert.

Fazit zu PHP pi

pi() und M_PI liefern den Wert von Pi mit voller Float-Präzision. PHP pi plus die Trigonometrie-Funktionen sin, cos, tan, deg2rad und rad2deg sind das Standard-Toolset für Winkel-, Geo- und Visualisierungs-Berechnungen. Mit der Haversine-Formel lässt sich die Distanz zwischen GPS-Punkten in einer kompakten Funktion berechnen, mit sin und cos entstehen Uhrzeiger-Positionen oder Sinus-Wellen. Wer immer in Radiant rechnet und das Verhalten an den Singularitäten kennt, bewegt sich auch in komplexeren Mathematik-Aufgaben sicher.

 


 

Kommentare (0)

Noch keine Kommentare. Sei der Erste!

Melde dich an, um einen Kommentar zu schreiben.
Bücherregal mit drei Büchern: 'PHP 4 - Grundlagen und Profiwissen' von Hanser Verlag, 'Webdesign in a Nutshell' von O'Reilly Verlag, und 'Webgestaltung' von Galileo Computing.