/** * Returns a single slice of pie */ protected function GetSlice($item, $angle_start, $angle_end, $radius_x, $radius_y, &$attr, $single_slice) { if ($single_slice) { return parent::GetSlice($item, $angle_start, $angle_end, $radius_x, $radius_y, $attr, $single_slice); } $x_start = $y_start = $x_end = $y_end = 0; $angle_start += $this->s_angle; $angle_end += $this->s_angle; $this->CalcSlice($angle_start, $angle_end, $radius_x, $radius_y, $x_start, $y_start, $x_end, $y_end); $outer = $angle_end - $angle_start > M_PI ? 1 : 0; $sweep = $this->reverse ? 0 : 1; // find explosiveness list($xo, $yo) = $this->GetExplode($item, $angle_start, $angle_end); $xc = $this->x_centre + $xo; $yc = $this->y_centre + $yo; $x_start += $xo; $x_end += $xo; $y_start += $yo; $y_end += $yo; $attr['d'] = "M{$xc},{$yc} L{$x_start},{$y_start} " . "A{$radius_x} {$radius_y} 0 {$outer},{$sweep} {$x_end},{$y_end} z"; return $this->Element('path', $attr); }