Hoi,
Wie kan mij een eindje op weg helpen?
Ik probeer met het volgende stukje code 2 lijnen in een grafiek te krijgen... (bannerviews/kliks)
De 2de lijn moet rood worden.
Code:<?php $titel = "Bannerviews / Unieke Kliks"; // array op deze manier genereren $hoofdarray = array(x-as => y-as) $hoofdarray = array( "1-1" => 45, "2-1" => 35, "3-1" => 42, "4-1" => 46, "5-1" => 51, "6-1" => 49, "7-1" => 33, "8-1" => 39, "9-1" => 40, "10-1" => 34 ); $hoofdarray2 = array( "1-1" => 375, "2-1" => 335, "3-1" => 352, "4-1" => 246, "5-1" => 451, "6-1" => 349, "7-1" => 233, "8-1" => 439, "9-1" => 340, "10-1" => 234 ); $gebied_breedte = 400; // grootte van de grafiek zelf (zonder randen) $gebied_hoogte = 200; // hoogte van de grafiek zelf (zonder randen) $rand_links = 20; // de breedte van de linker rand (hou rekening met de lengte van de waardes die op de y-as komen, in toekomst misschien automatisch) $rand_rechts = 10; // de breedte van de rechter rand $rand_onder = 40; // de rand onder de grafiek (hou rekening met de lengte van de waardes die op de x-as komen, in toekomst misschien automatisch) $rand_boven = 30; // de rand boven (hou rekening met de titel die hier in komt) $hor_lijnen = 4; // het aantal verdelingen van de y-as $hor_raster = TRUE; // horizontale lijnen zichtbaar? $ver_lijnen = 10; // het aantal verdelingen van de x-as $ver_raster = FALSE; // verticale lijnen zichtbaar? $grafiek_titel = $titel; // de titel van de grafiek header("Content-type: image/png"); if(function_exists("ImageCreateTrueColor")) { $plaatje = ImageCreateTrueColor(($gebied_breedte + $rand_rechts + $rand_links), ($gebied_hoogte + $rand_onder + $rand_boven)); } else { $plaatje = ImageCreate(($gebied_breedte + $rand_rechts + $rand_links), ($gebied_hoogte + $rand_onder + $rand_boven)); } $zwart = ImageColorAllocate($plaatje, 000, 000, 000); $wit = ImageColorAllocate($plaatje, 255, 255, 255); $grijs = ImageColorAllocate($plaatje, 225, 225, 225); $lijn = ImageColorAllocate($plaatje, 000, 000, 255); // blauwe grafieklijn $lijn2 = ImageColorAllocate($plaatje, 255, 000, 000); // rode grafieklijn imagefill($plaatje,1,1,$wit); // zwarte rand of niet: imagefilledrectangle($plaatje, 1, 1, ($gebied_breedte + $rand_rechts + $rand_links - 2), ($gebied_hoogte + $rand_onder + $rand_boven -2), $wit); imagefilledrectangle($plaatje, ($rand_links + 1), ($rand_boven + 1), ($rand_links + $gebied_breedte - 1), ($rand_boven + $gebied_hoogte -1), $grijs); $hoogste = 1; foreach($hoofdarray as $key => $value)if($value > $hoogste)$hoogste = $value; $style=array($zwart, $zwart, IMG_COLOR_TRANSPARENT, IMG_COLOR_TRANSPARENT, IMG_COLOR_TRANSPARENT ); imagesetstyle($plaatje,$style); $waarde = 1; for($y = $rand_boven;$y < ($gebied_hoogte + $rand_boven + 1);$y += ($gebied_hoogte / $hor_lijnen)) { $align = $rand_links - 3 - strlen(round($hoogste * $waarde)) * 5; imagestring($plaatje, 2, $align, $y - 7 , round($hoogste * $waarde), $zwart); if($hor_raster)imageline($plaatje, $rand_links, $y, ($rand_links + $gebied_breedte), $y, IMG_COLOR_STYLED); $waarde -= (1 / $hor_lijnen); } $aantal = count($hoofdarray); $interval = $gebied_breedte / ($aantal - 1); $yinterval = $gebied_hoogte / $hoogste; $x = $rand_links; $coords = array(); $ticker = 0; $numdates = round($aantal / $ver_lijnen); if($numdates < 1)$numdates = 1; foreach($hoofdarray as $xas => $yas) { $coords[$ticker]["x"] = round($x); $coords[$ticker]["y"] = ($rand_boven + $gebied_hoogte) - (round($yas * $yinterval)); if($ticker / $numdates == round($ticker / $numdates) || $ticker == 0 || $ticker == $aantal-1) { $align = ($gebied_hoogte + $rand_boven) + (strlen($xas) * 5) + 5; imagestringup($plaatje, 2 , round($x) - 7 , $align, $xas ,$zwart); if($ver_raster)imageline($plaatje, round($x) , $rand_boven , round($x) , ($rand_boven + $gebied_hoogte), IMG_COLOR_STYLED); } $x += $interval; $ticker++; } for($a = 0;$a < count($coords)-1;$a++) { imagesmoothline($plaatje, $coords[$a]["x"] , $coords[$a]["y"] , $coords[$a+1]["x"] , $coords[$a+1]["y"], $lijn); } imagerectangle($plaatje, $rand_links, $rand_boven, ($rand_links + $gebied_breedte), ($rand_boven + $gebied_hoogte), $zwart); imagestring($plaatje, 4 , ((($rand_links + $rand_rechts + $gebied_breedte) / 2) - ((strlen($grafiek_titel) / 2) * 8)) , ($rand_boven / 2) - 8 , $grafiek_titel , $zwart); ImagePNG($plaatje); ImageDestroy($plaatje); // functie voor de anti-aliasing van de grafieklijn (van php.net) function imagesmoothline ( $image , $x1 , $y1 , $x2 , $y2 , $color ) { $colors = imagecolorsforindex ( $image , $color ); if ( $x1 == $x2 ) { imageline ( $image , $x1 , $y1 , $x2 , $y2 , $color ); // Vertical line } else { $m = ( $y2 - $y1 ) / ( $x2 - $x1 ); $b = $y1 - $m * $x1; if ( abs ( $m ) <= 1 ) { $x = min ( $x1 , $x2 ); $endx = max ( $x1 , $x2 ); while ( $x <= $endx ) { $y = $m * $x + $b; $y == floor ( $y ) ? $ya = 1 : $ya = $y - floor ( $y ); $yb = ceil ( $y ) - $y; $tempcolors = imagecolorsforindex ( $image , imagecolorat ( $image , $x , floor ( $y ) ) ); $tempcolors['red'] = $tempcolors['red'] * $ya + $colors['red'] * $yb; $tempcolors['green'] = $tempcolors['green'] * $ya + $colors['green'] * $yb; $tempcolors['blue'] = $tempcolors['blue'] * $ya + $colors['blue'] * $yb; if ( imagecolorexact ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] ) == -1 ) imagecolorallocate ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] ); imagesetpixel ( $image , $x , floor ( $y ) , imagecolorexact ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] ) ); $tempcolors = imagecolorsforindex ( $image , imagecolorat ( $image , $x , ceil ( $y ) ) ); $tempcolors['red'] = $tempcolors['red'] * $yb + $colors['red'] * $ya; $tempcolors['green'] = $tempcolors['green'] * $yb + $colors['green'] * $ya; $tempcolors['blue'] = $tempcolors['blue'] * $yb + $colors['blue'] * $ya; if ( imagecolorexact ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] ) == -1 ) imagecolorallocate ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] ); imagesetpixel ( $image , $x , ceil ( $y ) , imagecolorexact ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] ) ); $x ++; } } else { $y = min ( $y1 , $y2 ); $endy = max ( $y1 , $y2 ); while ( $y <= $endy ) { $x = ( $y - $b ) / $m; $x == floor ( $x ) ? $xa = 1 : $xa = $x - floor ( $x ); $xb = ceil ( $x ) - $x; $tempcolors = imagecolorsforindex ( $image , imagecolorat ( $image , floor ( $x ) , $y ) ); $tempcolors['red'] = $tempcolors['red'] * $xa + $colors['red'] * $xb; $tempcolors['green'] = $tempcolors['green'] * $xa + $colors['green'] * $xb; $tempcolors['blue'] = $tempcolors['blue'] * $xa + $colors['blue'] * $xb; if ( imagecolorexact ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] ) == -1 ) imagecolorallocate ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] ); imagesetpixel ( $image , floor ( $x ) , $y , imagecolorexact ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] ) ); $tempcolors = imagecolorsforindex ( $image , imagecolorat ( $image , ceil ( $x ) , $y ) ); $tempcolors['red'] = $tempcolors['red'] * $xb + $colors['red'] * $xa; $tempcolors['green'] = $tempcolors['green'] * $xb + $colors['green'] * $xa; $tempcolors['blue'] = $tempcolors['blue'] * $xb + $colors['blue'] * $xa; if ( imagecolorexact ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] ) == -1 ) imagecolorallocate ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] ); imagesetpixel ( $image , ceil ( $x ) , $y , imagecolorexact ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] ) ); $y ++; } } } } ?>
- GD Lib krijg geen 2 strepen.
-
26-03-2006, 22:29 #1
- Berichten
- 158
- Lid sinds
- 19 Jaar
GD Lib krijg geen 2 strepen.
-
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic