Grafiek voor cirkels en lijnen
Het deel om een lijngrafiek te maken is gedeeltelijk van het script van Koen Bressers: http://phphulp.nl/php/scripts/9/427/ overgenomen en aangepast, de cirkelgrafiek is een variant daarop Je kunt op de pagina een grafiek weergeven door bij de lijngrafiek: x = Plaats lijn (op de x as) y = Plaats lijn (op de y as) Je kunt dit laten doen door een formulier (die je zelf kunt maken of kunt bekijken op Het script van Koen) de formule is Y = AX+B A is in dit geval X en B is Y Je kunt op de pagina een grafiek weergeven door bij cirkelgrafiek: m = Middelpunt (x;y) r = Straal (grootte cirkel) Je kunt dit laten doen door een formulier (die je zelf kunt maken of kunt bekijken op Het script van Koen) de formule is (X² - Xmiddel) + (Y² - Ymiddel) = R² Xmiddel en Ymiddel zijn de waarden van het middelpunt en R is de straal ps. je moet het lettertype arial in dezelfde map hebben staan
!!! Code voor de lijngrafiek (lijn.php) !!!
[code]
<?php
header("content-type: image/png");
$image = imagecreate(500, 500);
$achtergrond = imagecolorallocate($image, 255, 255, 255);
$zwart = imagecolorallocate($image, 0, 0, 0);
$wit = imagecolorallocate($image, 255, 255, 255);
$grijs = imagecolorallocate($image, 192, 192, 192);
$font = 'arial.ttf';
// verticale strepen
$teller_h = 0;
while($teller_h <= 40){
if($teller_h < 40){
$teller_h_pix = $teller_h * 12.5;
} else {
$teller_h_pix = ($teller_h * 12.5) - 1;
}
imageline($image, $teller_h_pix, 0, $teller_h_pix, 500, $grijs);
$teller_h ++;
}
// horizontale strepen
$teller_v = 0;
while($teller_v <= 40){
if($teller_v < 40){
$teller_v_pix = $teller_v * 12.5;
} else {
$teller_v_pix = ($teller_v * 12.5) - 1;
}
imageline($image, 0, $teller_v_pix, 500, $teller_v_pix, $grijs);
$teller_v ++;
}
// assenstrepen
imageline($image, 250, 0, 250, 500, $zwart);
imageline($image, 0, 250, 500, 250, $zwart);
// 0 tekst
$grootte = 7;
$gedraait = 0;
$tekst = 0;
imageTTFText($image, $grootte, $gedraait, 252, 248, $zwart, $font, $tekst);
$i=1;
while($i != 4)
{
imageTTFText($image, $grootte, $gedraait, (245 - ((12.8)*$i * 5)), 248, $zwart, $font, ($tekst - $i * 5));
$i++;
}
$i=1;
while($i != 4)
{
imageTTFText($image, $grootte, $gedraait, 252, (252 - ((12.5)*$i * 5)), $zwart, $font, ($tekst + $i * 5));
$i++;
}
$i=1;
while($i != 4)
{
imageTTFText($image, $grootte, $gedraait, 252, (252 + ((12.6)*$i * 5)), $zwart, $font, ($tekst - $i * 5));
$i++;
}
$i=1;
while($i != 4)
{
imageTTFText($image, $grootte, $gedraait, (248 + ((12.3)*$i * 5)), 248, $zwart, $font, ($tekst + $i * 5));
$i++;
}
// het startpunt op de y - as berekenen
$y = $_GET['y'];
$y_pix = 250 - ($y * 12.5);
$y_pix_0 = $y * 12.5;
$x = $_GET['x'];
$x_20 = $x * 20;
$x_pix = $x_20 * 12.5;
$x_pix_2 = 250 - $x_pix - $y_pix_0;
$x_min20 = $x * -20;
$x_minpix = $x_min20 * 12.5;
$x_minpix_2 = 250 - $x_minpix - $y_pix_0;
imageline($image, 250, $y_pix, 499, $x_pix_2, $zwart);
imageline($image, 250, $y_pix, 0, $x_minpix_2, $zwart);
imagepng($image);
imagedestroy($image);
?>
[/code]
!!! Code voor de cirkelgrafiek (cirkel.php) !!!
[code]
<?php
header("content-type: image/png");
$image = imagecreate(500, 500);
$achtergrond = imagecolorallocate($image, 255, 255, 255);
$zwart = imagecolorallocate($image, 0, 0, 0);
$wit = imagecolorallocate($image, 255, 255, 255);
$grijs = imagecolorallocate($image, 192, 192, 192);
$font = 'arial.ttf';
// verticale strepen
$teller_h = 0;
while($teller_h <= 40){
if($teller_h < 40){
$teller_h_pix = $teller_h * 12.5;
} else {
$teller_h_pix = ($teller_h * 12.5) - 1;
}
imageline($image, $teller_h_pix, 0, $teller_h_pix, 500, $grijs);
$teller_h ++;
}
// horizontale strepen
$teller_v = 0;
while($teller_v <= 40){
if($teller_v < 40){
$teller_v_pix = $teller_v * 12.5;
} else {
$teller_v_pix = ($teller_v * 12.5) - 1;
}
imageline($image, 0, $teller_v_pix, 500, $teller_v_pix, $grijs);
$teller_v ++;
}
// assenstrepen
imageline($image, 250, 0, 250, 500, $zwart);
imageline($image, 0, 250, 500, 250, $zwart);
// 0 tekst
$grootte = 7;
$gedraait = 0;
$tekst = 0;
imageTTFText($image, $grootte, $gedraait, 252, 248, $zwart, $font, $tekst);
$i=1;
while($i != 4)
{
imageTTFText($image, $grootte, $gedraait, (245 - ((12.8)*$i * 5)), 248, $zwart, $font, ($tekst - $i * 5));
$i++;
}
$i=1;
while($i != 4)
{
imageTTFText($image, $grootte, $gedraait, 252, (252 - ((12.5)*$i * 5)), $zwart, $font, ($tekst + $i * 5));
$i++;
}
$i=1;
while($i != 4)
{
imageTTFText($image, $grootte, $gedraait, 252, (252 + ((12.6)*$i * 5)), $zwart, $font, ($tekst - $i * 5));
$i++;
}
$i=1;
while($i != 4)
{
imageTTFText($image, $grootte, $gedraait, (248 + ((12.3)*$i * 5)), 248, $zwart, $font, ($tekst + $i * 5));
$i++;
}
// het startpunt op de y - as berekenen
$middelpunt = $_GET['m'];
$middelpunt = explode(';',$middelpunt);
$x = $middelpunt[0] * 12.5 + 250;
$y = $middelpunt[1] * 12.5 + 250;
$straal = $_GET['r'];
$x_straal = 12.5 * $straal * 2;
$y_straal = 12.5 * $straal * 2;
imageellipse($image, $x , $y , $x_straal , $y_straal , $zwart);
imagepng($image);
imagedestroy($image);
?>
[/code]
Reacties
0