Ich bin mir gerade eine Programm am Basteln Das die Fläche eines Sphärisches Dreiecks errechnet.
Leider bekomme ich nur Negativ Werte raus und die Ergebnis sehen auch nicht wirklich aus als wenn sie stimmen würden. Ich Kontrolliere mit einer Normalen Dreiecks Flächen Berechnung und der Wert sollte ja etwa dran kommen.
Programm Code könnte etwas irritieren. Die Frage in ein Programmier Forum zu posten ist was banal da es ein Mathe Problem ist. ich kann es aber auch wieder in Reguläre Mathe ausdrücke umwandeln falls jemand Probleme hat.
// sind aus kommentierte teile. So habe ich es zuerst versucht.
gegeben:
$Alat = 51.078875;
$Alng = 6.317525;
$Blat = 50.953745;
$Blng = 6.643854;
$Clat = 50.768479;
$Clng = 6.502682;
$R = 6378.137; //in KM. Ja wir sind auf der Erdkugel
Berechnung:
$a = acos((sin($Alat)*sin($Blat)) + ((cos($Alat)*cos($Blat)) * cos($Blng-$Alng)));
$b = acos((sin($Clat)*sin($Blat)) + ((cos($Clat)*cos($Blat)) * cos($Blng-$Clng)));
$c = acos((sin($Clat)*sin($Alat)) + ((cos($Clat)*cos($Alat)) * cos($Alng-$Clng)));
// $cosalpha = cos($a) / (cos($b) * cos($c) + sin($b) * sin($c));
// $cosbeta = cos($b) / (cos($a) * cos($c) + sin($a) * sin($c));
// $cosgamma = cos($c) / (cos($a) * cos($b) + sin($a) * sin($b));
// $alpha = acos($cosalpha);
// $beta = acos($cosbeta);
// $gamma = acos($cosgamma);
$alpha = asin(sinh($a));
$beta = asin(sinh($b));
$gamma = asin(sinh($c));
// $exzess = $alpha + $beta + $gamma - M_PI;
// $flaeche = $exzess * $R * $R;
$exzess = $alpha + $beta + $gamma - 180;
$flaeche = $exzess * ((M_PI * $R * $R) / 180);