PHP Kuchendiagramme spinnen

KeepXtreme

Lt. Commander
Registriert
Sep. 2008
Beiträge
1.390
abend zusammen,
ich erstell grad für unseren internen Gebrauch eine Statistikseite und versuche diese auch mit Kuchendiagrammen zu veranschaulichen. Leider spinnen die recht arg, wie ihr dieser xps entnehmen könnt (leider spinnt grad der uni-server & zugriff ist nur aus dem internen Netz möglich...)

der Code zum generieren der Diagramme (Ausschnitt):
PHP:
$values = explode("-", $_GET['values']);
    
//gültige Werte
if(count($values) != 4) {
       //nein: Fehlercode ausführen
       GOTO error;
}

//Summe aller Eingaben
$sum = array_sum($values);

//Bild erzeugen & Hintergrund erzeugen
$image = imagecreatetruecolor(2*$diagramRadius+1, 2*$diagramRadius+1);
imagefill($image, 0, 0, ImageColorTransparent($image));

//Farben anlegen
$colors = array();
array_push($colors, imagecolorexact($image, 50, 205, 50));
array_push($colors, imagecolorexact($image, 0, 0, 255));
array_push($colors, imagecolorexact($image, 255, 0, 0));
array_push($colors, imagecolorexact($image, 0, 0, 0));

//startwinkel angeben
$startWinkel = 0;
       
//Kreisabschnitte generieren
foreach($values as $value) {
           //Winkel berechnen
           $winkel = (360/$sum * $value);

           //Kreisschnitt malen
           imagefilledarc($image, $diagramRadius, $diagramRadius, 2*$diagramRadius, 2*$diagramRadius, $startWinkel, $winkel, array_pop($colors), IMG_ARC_PIE);

           //neuen Startwinkel berechnen
           $startWinkel += $winkel;
}

header('Content-type: image/gif');
imagegif($image);

-$diagramRadius wird über eine zentrale Konfig-Datei gesteuert
-der Goto-punkt "error" liegt außerhalb des zitierten Codes
-der Code wird definitiv ausgeführt, wechselwirkungen mit dem restlichen Code könnt ihr ausschließen

hat jmd. ne Idee, was alles falsch ist und wie ich's lös? ich verzweifle hier grade :/
 
Zuletzt bearbeitet:
Kann es sein, das der Startwert jeweils addiert werden muss?
Code:
imagefilledarc($image, 
$diagramRadius, 
$diagramRadius, 
2*$diagramRadius, 
2*$diagramRadius, 
$startWinkel, 
[B]$startWinkel+[/B]$winkel, 
array_pop($colors),
 IMG_ARC_PIE);
 
redeye86 schrieb:
Kann es sein, das der Startwert jeweils addiert werden muss?
PHP:
imagefilledarc($image, 
$diagramRadius, 
$diagramRadius, 
2*$diagramRadius, 
2*$diagramRadius, 
$startWinkel, 
[B]$startWinkel+[/B]$winkel, 
array_pop($colors),
 IMG_ARC_PIE);

nein, dann werden die Ergebnisse noch bunter :/
 
das löst mein Problem nicht - außerdem wär das einarbeiten in ein solch umfangreiche Klasse wesentlich umfangreicher, als das einarbeiten in die php-Bildfunktionen. Außerdem lern ich so noch was... aber wenn ichs net hinkrieg, werdi ch mir mal phpPlot anschaun - das hab ich wneigstens schon auf dem PC liegen...

edit:// hab nach einigem googeln mich dazu entschieden, mich doch in phPlot einzuarbeiten

-closed-
 
Zuletzt bearbeitet:

Ähnliche Themen

Zurück
Oben