Evo jedan .php znam da nije savrsen ima par propusta. Sluzi za crtanje grafika funkcije. Jednostavno ukucajte funkciju bez y= npr (x*x) i voila
Kod:
<?
if(!$_POST["y"]) {
echo "
<center>
<form name=\"form1\" method=\"post\" action=\"funkcija.php\">
Y= <input type=\"test\" name=\"y\">
<input type=\"submit\" name=\"Submit\" value=\"Grafik!\">
</form>
";
}
else {
Header("Content-type: image/png"); //Slanje header-a browseru
//Osnovne varijable sa sliku
$slDuzina=300; //Duzina slike
$slSirina=200; //Sirina slika
//Osnove varijable za funkciju
$izraz=$_POST["y"]; //Matematicki izraz za y
$xMax=-1000; //Maksimum funkcije
$sl=ImageCreate($slDuzina,$slSirina); //Pravljenje slike
//Funkcije za osnovne boje
$bBijela=ImageColorAllocate($sl,255,255,255);
$bCrna=ImageColorAllocate($sl,0,0,0);
$bSiva=ImageColorAllocate($sl,228,228,228);
$bTamnoSiva=ImageColorAllocate($sl,180,180,180);
$bPlava=ImageColorAllocate($sl,0,0,255);
$bCrvena=ImageColorAllocate($sl,255,0,0);
$bZelena=ImageColorAllocate($sl,0,255,0);
//Odredjivanje minimuma i maksimuma
for ($a=-1000;$a<=1000;$a++) {
$izraz1=str_replace("x", $a,$izraz);
eval("\$y=$izraz1;");
if ($y>$xMax && $y<$slSirina/2) { $xMax = $a; }
}
//Iscrtavanje koordinatnog sistema
ImageLine($sl, $slDuzina/2, 0, $slDuzina/2, $slSirina, $bCrna); //Y Osa
ImageLine($sl, 0, $slSirina/2, $slDuzina, $slSirina/2, $bCrna); //X Osa
ImageLine($sl, $slDuzina-10, $slSirina/2-3, $slDuzina, $slSirina/2, Crvena); //Strelica na
ImageLine($sl, $slDuzina-10, $slSirina/2+3, $slDuzina, $slSirina/2, $bCrvena); //X osi
ImageLine($sl, $slDuzina/2-3, 10, $slDuzina/2, 0, $bCrvena); //Strelica na
ImageLine($sl, $slDuzina/2+3, 10, $slDuzina/2, 0, $bCrvena); //Y osi
ImageString($sl, 3, $slDuzina/2+5, $slSirina/2+5, "0", $bCrna); //Nula kod koordinatnog pocetka
$x=0;
$lPixX="bla";
$lPixY="bla";
for ($a=0;$a<=$slDuzina/2;$a=$a+$slDuzina/($xMax*2)) { // Rijesavanje funkcije za crtanje grafika za x>=0
$izraz1=str_replace("x", $x,$izraz);
eval("\$y=$izraz1;");
ImageSetPixel($sl, $a+$slDuzina/2, $slSirina/2-$y, $bPlava);
if ($lPixX!="bla" && $lPixY!="bla") { ImageLine($sl, $lPixX, $lPixY, $a+$slDuzina/2, $slSirina/2-$y, $bPlava); }
$lPixX=$a+$slDuzina/2;
$lPixY=$slSirina/2-$y;
$x++;
}
$x=-$xMax*2;
$lPixX="bla";
$lPixY="bla";
for ($a=-$slDuzina;$a<=0;$a=$a+$slDuzina/($xMax*2)) { // Rijesavanje funkcije za crtanje grafika x<=0
$izraz1=str_replace("x", $x,$izraz);
eval("\$y=$izraz1;");
ImageSetPixel($sl, $a+$slDuzina/2, $slSirina/2-$y, $bPlava);
if ($lPixX!="bla" && $lPixY!="bla") { ImageLine($sl, $lPixX, $lPixY, $a+$slDuzina/2, $slSirina/2-$y, $bPlava); }
$lPixX=$a+$slDuzina/2;
$lPixY=$slSirina/2-$y;
$x++;
}
//Kraj
ImagePNG($sl); //Slanje slike browseru
ImageDestroy($sl); //Zatvaranje slike u PHP-u
}
?>
</center>