Piszę skrypt w oparciu o bibliotekę GD, który będzie rysować wykres funkcji liniowej. Układ współrzędnych już narysowałem i teraz chciałbym, aby każde 20 pikseli było traktowane jako jednostka, a wykres rysowany w sposób odpowiedni, a nie od górnego lewego punktu. Tylko kompletnie nie wiem jak się za to zabrać. Gdyby ktoś mógł pomóc będę bardzo wdzięczny.
Kod skryptu:
<?
header("Content-type: image/png"); $obraz = ImageCreateTrueColor(1000, 550);
$sox = -20;
$soy = 11;
// Definicje kolorów
$kolor['1'] = ImageColorAllocate($obraz, 0, 0, 0); // czarny
$kolor['2'] = ImageColorAllocate($obraz, 255, 255, 255); // biały
$kolor['3'] = ImageColorAllocate($obraz, 255, 255, 0); // żółty
$kolor['4'] = ImageColorAllocate($obraz, 0, 0, 255); // niebieski
$kolor['5'] = ImageColorAllocate($obraz, 0, 255, 0); // zielony
$kolor['6'] = ImageColorAllocate($obraz, 255, 0, 0); // czerwony
imagefill ($obraz, 0, 0, $kolor['2']);
imageline ($obraz, 0, 275, 1000, 275, $kolor['1']); //oś OX
imageline ($obraz, 500, 0, 500, 551, $kolor['1']); //oś OY
for ($i=0; $i<=1000; $i++) { //podziałka osi OX
imageline ($obraz, $i, 272, $i, 278, $kolor['1']);
$i+=24;
}
for ($i=0; $i<=1000; $i++) { //skala osi OK
imagestring ($obraz, 'arial.ttf', $i, 280, $sox, $kolor['1']);
$i+=24;
$sox++;
}
for ($i=0; $i<=550; $i++) { //podziałka osi OY
imageline ($obraz, 497, $i, 503, $i, $kolor['1']);
$i+=24;
}
for ($i=0; $i<=550; $i++) { //skala osi OY
imagestring ($obraz, 'arial.ttf', 505, $i, $soy, $kolor['1']);
$i+=24;
$soy--;
}
for ($x=0; $x<=1000; $x++) { //rysowanie wykresu funkcji
$y = $x;
ImageSetPixel($obraz, $x, $y, $kolor['6']);
}
imagePNG($obraz);
ImageDestroy($obraz);
?>
Z góry dziękuje za pomoc
Pozdrawiam
Ten post edytował wolfik 22.01.2006, 16:04:14