Nochmal die Gedächtnisstütze zum anguggen:
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:
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: skalarprodukt.php