Signatur
Beschreibung
acos() ist die Umkehrfunktion des Kosinus. Sie nimmt einen Wert im Bereich [-1.0, 1.0] entgegen und gibt den zugehörigen Winkel im Bogenmaß (Radiant) zwischen 0 und π zurück. Damit gehört sie zu den trigonometrischen Standardfunktionen in PHP.
Typische Anwendungsgebiete sind geometrische Berechnungen, z. B. das Bestimmen eines Winkels aus zwei bekannten Vektoren oder Seitenlängen, sowie physikalische Simulationen und 3D-Grafik-Berechnungen.
Um das Ergebnis von Radiant in Grad umzurechnen, multipliziert man es mit 180 / M_PI. Umgekehrt wandelt man Grad in Radiant um, indem man mit M_PI / 180 multipliziert.
Liegt der übergebene Wert außerhalb des gültigen Bereichs [-1.0, 1.0], gibt die Funktion NAN (Not a Number) zurück.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $num Pflicht | float | Der Kosinus-Wert, dessen Arkuskosinus berechnet werden soll. Muss im Bereich -1.0 bis 1.0 liegen. |
Rückgabewert
num im Bogenmaß (Radiant) als float. Liegt num außerhalb von [-1.0, 1.0], wird NAN zurückgegeben.Beispiele
Arkuskosinus berechnen und in Grad umrechnen
<?php
// Arkuskosinus von 0.5 (entspricht 60 Grad)
$radiant = acos(0.5);
$grad = $radiant * (180 / M_PI);
echo 'Radiant: ' . $radiant . PHP_EOL;
echo 'Grad: ' . $grad . PHP_EOL;
Winkel zwischen zwei Vektoren berechnen
<?php
// Winkel zwischen zwei 2D-Vektoren mit dem Skalarprodukt
function winkelZwischenVektoren(array $a, array $b): float
{
$dot = $a[0] * $b[0] + $a[1] * $b[1];
$lenA = sqrt($a[0] ** 2 + $a[1] ** 2);
$lenB = sqrt($b[0] ** 2 + $b[1] ** 2);
// Kosinus des Winkels, auf [-1, 1] begrenzen um NAN zu vermeiden
$cosWinkel = max(-1.0, min(1.0, $dot / ($lenA * $lenB)));
return acos($cosWinkel) * (180 / M_PI);
}
$vektorA = [1, 0];
$vektorB = [0, 1];
echo 'Winkel: ' . winkelZwischenVektoren($vektorA, $vektorB) . ' Grad' . PHP_EOL;
Ungültiger Eingabewert führt zu NAN
<?php
$ergebnis = acos(1.5); // Wert außerhalb von [-1, 1]
if (is_nan($ergebnis)) {
echo 'Ungültiger Eingabewert: Ergebnis ist NAN' . PHP_EOL;
} else {
echo 'Ergebnis: ' . $ergebnis . PHP_EOL;
}
// Wichtig · Fallstricke
NAN-Behandlung: Übergibst du einen Wert außerhalb von [-1.0, 1.0], gibt acos() NAN zurück, ohne eine Warnung oder Exception auszulösen. Prüfe das Ergebnis daher ggf. mit is_nan(), oder klemme den Eingabewert vorab mit max(-1.0, min(1.0, $wert)) auf den gültigen Bereich.
Bei sehr großen oder sehr kleinen Gleitkommazahlen können Rundungsfehler auftreten. Dies ist ein allgemeines Problem von float-Arithmetik in PHP (IEEE 754).