BG/BRG Lerchenfeld
Schulbezeichnung
Impressum |  Kontakt |  Neues |  Sitemap

Funktionsplotter

Funktion


Code:

 <?php

$xmax=420;#Auflösung x

$ymax=320;#Auflösung y

$rand=10;#Padding der Grafik

$intervallex=5;#Intervalle in x-Richtung

$intervalley=5;#Intervalle in y-Richtung

$xgrenze=5;#Intervallänge x

$ygrenze=10;#Intervalgrenze y

$ystr="f(x)=ln(x)";#dargestellte Funktion

########################################################

#Ausführung

$start=$rand;#sStartwert x-Koordinate

$xende=$xmax-$rand;

$yende=$ymax-$rand;

$mx=$xmax/2;# Mitte x-Richtung

$my=$ymax/2;# Mitte y-Richtung

$skx=$xgrenze/($xende-$mx); #Skalierung in x

$sky=$ygrenze/($yende-$my);#Skalierung in y

$modx=($mx-10) / $intervallex;#Berechnung des Nenners der Ganzzahlendivision

$mody=($my-10) / $intervalley;#-"-

$img = @imagecreatetruecolor($xmax,$ymax);#Bild erzeugen

$black = imagecolorallocate($img, 0, 0, 0);#Farben definieren

$white = imagecolorallocate($img, 255, 255, 255);

$red   = imagecolorallocate($img, 255, 0, 0);

$green = imagecolorallocate($img, 0, 255, 0);

$blue  = imagecolorallocate($img, 0, 0, 255);

$yellow= imagecolorallocate($img, 255,255, 0);

imagefill($img, 0, 0, $white); #Hintergrundfarbe ab Bildpunkt (0,0)

#Funktion Ausgabe

imagestring($img, 5, $mx+50, 10,$ystr, $red);

#x-Achse

imageline($img,$start,$my,$xende,$my,$black);

#y-Achse

imageline($img,$mx,$rand,$mx,$ymax-$rand,$black);

for ($y=$start;$y<=$yende;$y++){

 $yr=(-$y+$my);

 $yrr=$yr*$sky;

 if (($yr % $mody)==0) {

 imageline($img,$mx+5,$y,$mx-5, $y,$black);

 imagestring($img, 2, $mx+7, $y-7,$yrr, $black);

 }

}

#Zeichne die Funktion

for ($z=$start;$z<=$xende;$z++){

 $xr=($z-$mx);

 $x=$xr*$skx;#skalieren

 #x-Achse Beschriftung

 if (($xr) % $modx == 0) {

 imageline($img,$z,$my-5,$z, 5+$my,$black);

 imagestring($img, 2, $z-2, $my+12,$x, $black); 

 }

 # ln(x) ist nur für positive Zahlen definiert

 if ($x>0) {

 $f=log($x); 

 ######################

 $y=$f/$sky;#skalieren

 #Zeichne nur Punkte innerhalb der Grenzwerte

 if (abs(-$y+$my)>=$start and abs(-$y+$my)<=$yende) imagesetpixel($img,$z,-$y+$my,$red);

 }

}#end for

#Bild speichern

imagejpeg($img, "funktion.jpg", 100);

#Browser Bildausgabe vorbereiten

#header("Content-type: image/jpe");

#Anzeigen des Bildes im Browser

#imagejpeg($img);

#Löschen des Image-Objektes

imagedestroy($img);

echo "<h1 style="text-align:center">Funktionsplotter</h1>";

echo "<p style="text-align:center"><img src="/funktion.jpg" alt="Funktion" /></p> ";

?>