Servus, ich hab grad ein kleines Problem mit dem erstellen eines Kuchendiagrams bzw. mit dessen Beschriftung.
Das Diagramm wird richtig erstellt, nur an der beschriftung hapert es
Ich bekomme immer folgenden Fehler
Zeile 120 ist folgende:
Das Diagramm wird richtig erstellt, nur an der beschriftung hapert es
Ich bekomme immer folgenden Fehler
Warning: Missing argument 4 for fill_arc() in /opt/lampp/htdocs/counter/module/statistik/statistik_tag_browser.php on line 120
PHP-Code:
function fill_arc($start, $end, $color,$wert)
PHP-Code:
// basis parameter definieren
$winkel=array();
$start = array();
$end=array();
// definition der tortenparameter
$diameter = 300;
$radius = $centerX = $centerY = $diameter/2;
// bild anlegen mit weissem hintergrund
$image = imagecreate($diameter, $diameter);
$background = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
// winkel für die einzelnen tortenstücke berechnen
for($i=0;$i<count($werte);$i++)
{
$winkel[] = round(360*$werte[$i]/100);
}
// start/endpositionen für die tortenstücke ermitteln
$start[] = 0;
for($i=0;$i<count($winkel);$i++)
{
$end[] = $start[$i] + $winkel[$i];
if($i< (count($winkel)-1))
{
$start[] = $end[$i];
}
}
// farben definieren, kann/muss man anders lösen => in abhängigkeit zur
// anzahl der werte
$light = array();
$dark = array();
$light[] = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
$dark[] = imagecolorallocate($image, 0x90, 0x90, 0x90);
$light[] = imagecolorallocate($image, 0x00, 0x00, 0x80);
$dark[] = imagecolorallocate($image, 0x00, 0x00, 0x50);
$light[] = imagecolorallocate($image, 0xFF, 0x00, 0x00);
$dark[] = imagecolorallocate($image, 0x90, 0x00, 0x00);
// flächen der einzelnen torten-elemente füllen
function fill_arc($start, $end, $color,$wert) {
global $diameter, $centerX, $centerY, $image, $radius, $black;
imagearc($image, $centerX, $centerY, $diameter, $diameter, $start, $end, $color);
imageline($image, $centerX, $centerY, $centerX + cos(deg2rad($start)) * $radius, $centerY + sin(deg2rad($start)) * $radius , $color);
imageline($image, $centerX, $centerY, $centerX + cos(deg2rad($end)) * $radius , $centerY + sin(deg2rad($end)) * $radius, $color);
imagefill ($image,$centerX + $radius * 0.5 *cos(deg2rad($start+($end-$start)/2)), $centerY + $radius * 0.5 * sin(deg2rad($start+($end-$start)/2)), $color);
// beschriftung mit dem prozentwert
$text=$wert."%";
$img_x = $centerX + cos(deg2rad($end)) * ($radius+10);
$img_y = $centerY + sin(deg2rad($end)) * ($radius+10);
$text = "x: ".$img_x." | y: ".$img_y; // nur zum testen der coords
ImageTTFText ($image, 10, 0,$img_x, $img_y, $color, "zubehoer/verdana.ttf", $text);
}
for($i=0;$i<count($werte);$i++)
{
fill_arc($start[$i], $end[$i], $light[$i]);
}
imagepng($image,"temp/gfx_$sess_user_id.png");
imagedestroy($image);
echo "<br><br><img src='temp/gfx_$sess_user_id.png' border='0'>";
PHP-Code:
sss
Kommentar