Code:
bool imagefilledarc ( resource $image, int $cx, int $cy, int $width, int $height, int $start, int $end, int $color, int $style )
da imagefilledarc() ganzzahlen als Winkel erwartet, sind die Kreisausschnitte auf 360 begrenzt. Ich habe nun das Problem dass ich über 360 Stücke komme bzw. über 360° wegen Rundungsfehler überschreite.
Gibt es eine vernünftige Alternative mit float zahlen
PHP-Code:
$step=360/$i;
$step=round($step);
$start=0;
for($y=0;$y<count($array);$y++){
$ende=$array[$y][0]*$step+$start;
imagefilledarc($image, $mitte, $mitte, $dm, $dm, $start, $ende,
ImageColorAllocate ($image, rand(0, 255),rand(0, 255),rand(0, 255)), IMG_ARC_PIE);
$start=$ende;
}
$start=0;
for($y=0;$y<count($array);$y++){
$ende=$array[$y][0]*$step+$start;
imageline ($image, $mitte, $mitte, $mitte+(($dm/2)*cos(deg2rad($start))),
$mitte+(($dm/2)*sin(deg2rad($start))), $fill_color);
imagestring($image,5,$mitte+(($dm/2)*cos(deg2rad(($start+$ende)/2))),
$mitte+(($dm/2)*sin(deg2rad(($start+$ende)/2))),$y+1,$fill_color);
$start=$ende;
}
Kommentar