Tämä on siis graafisen laskimen kokeilu php:llä. Demo löytyy osoitteesta: http://www.muunnin.com/kuva.php Kuvan jälkeen voi antaa parametrit astx ja asty jotka kertovat skaalan. Tarkoitus ois viel lisätä kenttä johon voi syöttää yhtälön ratkaistuun muotoon, mutta näiden muuttujiin lukemiseen ei vielä riitä taidot:(
<?php // funktio joka laskee x:n koordinaatit function x($x){ global $asteikkox, $leveys; $vali = ($leveys / 2) + ($x * $asteikkox); return round($vali, 0); } // funktio joka laskee y:n koordinaatit function y($y){ global $asteikkoy, $korkeus; $vali = ($korkeus / 2) - ($y * $asteikkoy); return round($vali, 0); } // kertoimet $vakio = 0; $kerroin = 0; $toinenaste = 0; $naste = array(); $naste[3] = 1; $naste[4] = 1; $leveys = 700; //kuvan leveys $korkeus = 700; //kuvan korkeus // x:n skaala if ($_GET['astx'] != ""){ $xasteikko = $_GET['astx'] * 2; } else { $xasteikko = 40; } // y:n skaala if ($_GET['asty'] != ""){ $yasteikko = $_GET['asty'] * 2; } else { $yasteikko = 40; } $kuva = imagecreate($leveys,$korkeus); // Luodaan kuva $asteikkox = $leveys / $xasteikko; // asteikko mikä määrää montako pikseliä yksi x vastaa $asteikkoy = $korkeus / $yasteikko; // asteikko mikä määrää montako pikseliä yksi y vastaa $bg = imagecolorallocate($kuva, 255, 255, 255); $viiva = imagecolorallocate($kuva, 0, 0, 0); // Viivan väri $harmaa = imagecolorallocate($kuva, 192, 192, 192); // määrää x:n kohdalla ruudukon piirtovälin if ($xasteikko <= 10){ $xruudukko = 10; $xasteikkopituus = 10; $piirto_vali = 0.01; } elseif ($xasteikko < 30){ $xruudukko = 5; $xasteikkopituus = 5; $piirto_vali = 0.05; } else { $xruudukko = 2; $xasteikkopituus = 3; $piirto_vali = 0.1; } // määrää y:n kohdalla ruudukon piirtovälin if ($yasteikko <= 10){ $yruudukko = 10; $yasteikkopituus = 10; } elseif ($yasteikko < 30){ $yruudukko = 5; $yasteikkopituus = 5; } else { $yruudukko = 2; $yasteikkopituus = 3; } // piirtää x:n ruudukon for ($x = 0; $x <= $leveys; $x = $x + ($asteikkox / $xruudukko)){ imageline($kuva, $x, 0, $x, $korkeus, $harmaa); } // piirtää y:n ruudukon for ($y = 0; $y <= $korkeus; $y = $y + ($asteikkoy / $yruudukko)){ imageline($kuva, 0, $y, $leveys, $y, $harmaa); } imageline($kuva, 0, $korkeus / 2, $leveys, $korkeus / 2, $viiva); // piirtää x-akselin imageline($kuva, $leveys / 2, 0, $leveys / 2, $korkeus, $viiva); // piirtää y-akselin // piirtää x:n skaalan for ($x = 0; $x <= $leveys; $x = $x + $asteikkox){ imageline($kuva, $x, $korkeus / 2 + $xasteikkopituus, $x, $korkeus / 2 - $xasteikkopituus, $viiva); } // piirtää y:n skaalan for ($y = 0; $y <= $korkeus; $y = $y + $asteikkoy){ imageline($kuva, $leveys / 2 + $yasteikkopituus, $y, $leveys / 2 - $yasteikkopituus, $y, $viiva); } $yaste = array(); $yaste2 = array(); // piirtää kuvaajan for ($x = -($xasteikko / 2); $x < ($xasteikko / 2); $x = $x + $piirto_vali){ $x2 = $x + $piirto_vali; for ($aste = 3; $aste < 10; $aste++){ $vali = 0; if ($naste[$aste] != 0){ $vali = pow($x, $aste) * $naste[$aste]; $yaste[$x * 100] = $yaste[$x * 100] + $vali; } } for ($aste = 3; $aste < 10; $aste++){ $vali = 0; if ($naste[$aste] != 0){ $vali = pow($x2, $aste) * $naste[$aste]; $yaste2[$x2 * 100] = $yaste2[$x2 * 100] + $vali; } } $y = $x * $kerroin + $x * $x * $toinenaste + $vakio + $yaste[$x * 100]; $y2 = $x2 * $kerroin + $x2 * $x2 * $toinenaste + $vakio + $yaste2[$x2 * 100]; imageline($kuva, x($x), y($y), x($x2), y($y2), $viiva); } header("Content-type: image/png"); imagepng($kuva); // Luodaan kuva imagedestroy($kuva); // Poistetaan kuva muistista ?>
Aihe on jo aika vanha, joten et voi enää vastata siihen.