Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Yksinkertainen kuvaaja

T.M. [18.07.2006 23:10:05]

#

<?php


// Numerodataa kuvaajalle:
$data = array(10, 53, 50, 42, 40, 42, 53, 54, 55, 70, 5, 1, 7, 100, 90, 52, 49, 48, 47, 106, 108, 99, 18, 20, 42, 54, 10, 12, 1, 0, 0, 0, 90, 121, 31, 11, 12);

// Haetaan min ja max arvot, jotta kuvaaja skaalautuu vain sille alueelle jonka näemme:
$min = min($data);
$max = max($data);
$maara = count($data);
$vali = $max-$min; // kuinka suuri on suurin mahdollinen korkeusero

// Kertoimet x ja y akseleille
$kx = 20; // Kuinka pitkät välit jokaisella viivalla on x akselilla
$ky = 2; // kuinka korkea kuvaajasta tulee

// $maara-1 koska numeroita käytiin läpi $maara-1 verran:
$leveys = ($maara-1)*$kx+1;
$korkeus = $vali*$ky+1;

// Luodaan kuva:
$im = imagecreate($leveys, $korkeus);
$val = imagecolorallocate($im, 0, 255, 255);
$mus = imagecolorallocate($im, 0, 0, 0);


$x = 0;
// Käydään kaikki numerot läpi, paitsi viimeistä,
//   koska muutoin viimeinen viiva ei saisi päätepistettä lainkaan:
for($u = 0; $u < $maara-1; $u++){
	// y1 ja y2 kerrotaan $ky:llä, jotta viiva alkaa oikeasta kohdasta:
	$y1 = $data[$u]*$ky;
	$y2 = $data[$u+1]*$ky;
	// Piirretään aloituskohta oikeaan paikkaan
	//   x-akselilla, mutta päätöskohtaan lisätään $kx:
	imageline($im, $x, $y1, $x+$kx, $y2, $mus);
	// Siirrytään x-akselilla eteenpäin kertoimen verran:
	$x += $kx;
} // Yksinkertainen graafinen kuvaaja by T.M. - www.HC-Codes.net


header("Content-type: image/png");
imagepng($im);
imagedestroy($im);


?>

Vastaus

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

Tietoa sivustosta