===== Skalarprodukt =====
Nochmal die Gedächtnisstütze zum anguggen:
[[http://www.rither.de/a/mathematik/lineare-algebra-und-analytische-geometrie/winkel/winkel-zwischen-vektor-und-vektor/]]
Der Kopf der Funktion sieht folgendermaßen aus:
function sprodukt($a,$b,$text="")
Das zweite Argument wird hierbei **vorbelegt**, dadurch wird es optional und wir müssen es beim Aufruf der Funktion nicht angeben (können aber natürlich, wenn wir wollen!)
Für die Fallunterscheidung verwenden wir wieder eine **if-Abfrage**.
Um den Winkel zwischen den Vektoren zu berechnen gehen wir folgendermaßen vor:
- Wir berechnen das Skalarprodukt der Vektoren.
- Dann jeweils deren Länge. **abs()** gibt den Betrag zurück, **sqrt()** berechnet die Wurzel.
- **acos()** ist der normale cos^(-1), wird allerdings im **Bogenmaß** ausgerechnet.
- Um den Winkel im Gradmaß zu erhalten benutzen wir die Funktion **rad2deg()**.
function sprodukt($a,$b,$text=""){
if ($text == "winkel") {
$skal = $a[0]*$b[0]+$a[1]*$b[1]+$a[2]*$b[2];
$laenge_a = abs(sqrt($a[0]*$a[0]+$a[1]*$a[1]+$a[2]*$a[2]));
$laenge_b = abs(sqrt($b[0]*$b[0]+$b[1]*$b[1]+$b[2]*$b[2]));
$winkel = acos($skal / ($laenge_a * $laenge_b));
$winkel = rad2deg($winkel);
return $winkel;
}
else {
$ergebnis = $a[0]*$b[0]+$a[1]*$b[1]+$a[2]*$b[2];
return $ergebnis;
}
}
Wie immer hier das fertige Programm: {{:funktionen:skalarprodukt.php|}}