Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Graafinen laskin php:n avulla

sane [15.12.2005 18:52:50]

#

Eli tarkoituksena olisi tehdä graafinen laskin nettiin, ja tällaisen olen saanut aikaan. Tuo ei kuitenkaan piirrä itse suoraa, pelkästään x- ja y-akselit. Eli missähän lienee vika?

<?php

function x($x){
         global $asteikkox, $leveys;
         $vali = ($leveys / 2) + ($x * $asteikkox);
         return round($vali, 0);
         }

function y($y){
         global $asteikkoy, $korkeus;
         $vali = ($korkeus / 2) - ($y * $asteikko);
         return round($vali, 0);
         }

$kerroin = 1;
$leveys = 700;
$korkeus = 600;
$kuva = imagecreate($leveys,$korkeus); // Luodaan kuva
$asteikkox = $leveys/20;
$asteikkoy = $korkeus/20;
$bg = imagecolorallocate($kuva, 255, 255, 255);
$viiva = imagecolorallocate($kuva, 0, 0, 0); // Viivan väri
imageline($kuva, 0, $korkeus / 2, $leveys, $korkeus / 2, $viiva); // piirtää x-akselin
imageline($kuva, $leveys / 2, 0, $leveys / 2, $korkeus, $viiva); // piirtää y-akselin
$x=0;
$y=0;
while ($x <= $leveys){
       imageline($kuva, $x, $korkeus / 2 + 5, $x, $korkeus / 2 - 5, $viiva);  // piirtää x-akseliin pystyviivat
       $x = $x + $asteikkox;
       }
while ($y <= $korkeus){
        imageline($kuva, $leveys / 2 + 5, $y, $leveys / 2 - 5, $y, $viiva);  // piirtää y-akseliin pystyviivat
        $y = $y + $asteikkoy;
        }

$x=-10;

while ($x < 10){
        $y = $x * $kerroin;
        $x2 = $x + 1;
        $y2 = $x2 * $kerroin;

        imageline($kuva, x($x), y($y), x($x2), y($y2), $viiva); // pitäisi piirtää suora

        $x++;

        }


header("Content-type: image/png");
imagepng($kuva); // Luodaan kuva
imagedestroy($kuva); // Poistetaan kuva muistista
?>

Antti Laaksonen [17.12.2005 12:59:34]

#

Yksi vika on ainakin funktiossa y. Siinä on viittaus muuttujaan $asteikko, vaikka selvästi pitäisi olla $asteikkoy. Määrittelemättömän muuttujan $asteikko arvo on taas aina nolla. Tällaisia ongelmia kannattaa selvittää tulostamalla sivulle piirrettävien viivojen koordinaatteja. Niitä tutkimalla selviää väkisinkin, mikä koodissa on vikana.

sane [17.12.2005 18:34:21]

#

Antti Laaksonen kirjoitti:

Yksi vika on ainakin funktiossa y. Siinä on viittaus muuttujaan $asteikko, vaikka selvästi pitäisi olla $asteikkoy. Määrittelemättömän muuttujan $asteikko arvo on taas aina nolla. Tällaisia ongelmia kannattaa selvittää tulostamalla sivulle piirrettävien viivojen koordinaatteja. Niitä tutkimalla selviää väkisinkin, mikä koodissa on vikana.

kiitos. olin kyllä tehnyt sen, mutta tulostavaan funktioon olin laittanut sen oikein että siitä ei sit selvinnyt. seuraava kysymys ois et kun ois tarkotus laittaa tonne sivulle semmonen tekstikenttä, johon voi syöttää lausekkeen muotoa: "2xy4+3xy3-2x2+4x-34", jossa xn jälkeen tuleva numero tarkoittaa monennenko asteen termi on, x2 tarkoittaa toisen asteen, niin miten tuon saisi funktiossa muokattua muotoon: $kerroin = 4 (x:n kerroin), $vakio = -34 (vakiotermi) $toinenaste = -2 (toisen asteen kerroin) $naste[3] = 3 (kolmannen asteen kerroin) $naste[4] = 2 (neljännen asteen kerroin)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta