\n"; # Schleife fuer die weiteren Punkte for ($i = 1; $i <= $anz; $i++) { # Randpunkt $x=$i*900/$anz; #$y=-400*sin(2.0*M_PI*$i/$anz); $xx=($i/$anz); $y=fun($xx, 0.5); # Ableitung fuer y, die fuer x ist in diesem Beispiel #konstant und muss nicht nochmal gerechnet werden $yabl=abl($xx, 0.5, 0.001)/$anz; # zweiten Kontrollpunkt rechnen $kx=round($x-$xabl/3.0-$xalt,1); $ky=round($y-$yabl/3.0-$yalt,1); # automatische stetig differenzierbare Fortsetzung # fordern if ($i==2){ $pfad1 .="s "; } $pfad1 .="$kx,$ky "; $px=round($x,1); $py=round($y,1); $ppx=round($x-$xalt,1); $ppy=round($y-$yalt,1); $xalt=$x; $yalt=$y; # Kontrollpunkte und Endpunkte $pfad1 .="$ppx,$ppy \n"; $einzelpunkte .="\n"; } # svg-header senden: $content="Content-type: image/svg+xml"; header($content); # xml-Zeile ausgeben echo ""; # und jetzt das Dokument ?> Simpler Funktionenzeichner mit kubischen Bezierkurven Eine einfache, stetig differenzierbare Funktion wird mit einer Bezierkurve angenähert. Stuetzpunkte für die Bezierkurven sind zusätzlich eingezeichnet. Nullpunkt festlegen, Linienzug, Pfad und Einzelpunkte ausgeben.