protected function createSVGArcPath($outerRadius)
    {
        $color = $this->randomCssColor();
        $ringThickness = $this->ringwidth / 2;
        $startAngle = $this->rand(20, 360);
        $stopAngle = $this->rand(20, 360);
        if ($stopAngle < $startAngle) {
            list($startAngle, $stopAngle) = array($stopAngle, $startAngle);
        }

        list ($xStart, $yStart) = $this->polarToCartesian($outerRadius, $startAngle);
        list ($xOuterEnd, $yOuterEnd) = $this->polarToCartesian($outerRadius, $stopAngle);

        $innerRadius = $outerRadius - $ringThickness;
        $SweepFlag = 0;
        $innerSweepFlag = 1;
        $largeArcFlag = (int)($stopAngle - $startAngle < 180);
        list ($xInnerStart, $yInnerStart) = $this->polarToCartesian($outerRadius - $ringThickness, $stopAngle);
        list ($xInnerEnd, $yInnerEnd) = $this->polarToCartesian($outerRadius - $ringThickness, $startAngle);

        $fullPath = "<path fill='$color' d='
            M $xStart $yStart
            A $outerRadius $outerRadius 0 $largeArcFlag $SweepFlag $xOuterEnd $yOuterEnd
            L $xInnerStart $yInnerStart
            A $innerRadius $innerRadius 0 $largeArcFlag $innerSweepFlag $xInnerEnd $yInnerEnd
            Z
            '/>";
        return $fullPath;
    }
protected function createSVGArcPath($outerRadius)
    {
        $color = $this->randomCssColor();
        $ringThickness = $this->ringwidth / 2;
        $startAngle = $this->rand(20, 360);
        $stopAngle = $this->rand(20, 360);
        if ($stopAngle < $startAngle) {
            list($startAngle, $stopAngle) = array($stopAngle, $startAngle);
        }

        list ($xStart, $yStart) = $this->polarToCartesian($outerRadius, $startAngle);
        list ($xOuterEnd, $yOuterEnd) = $this->polarToCartesian($outerRadius, $stopAngle);

        $innerRadius = $outerRadius - $ringThickness;
        $SweepFlag = 0;
        $innerSweepFlag = 1;
        $largeArcFlag = (int)($stopAngle - $startAngle < 180);
        list ($xInnerStart, $yInnerStart) = $this->polarToCartesian($outerRadius - $ringThickness, $stopAngle);
        list ($xInnerEnd, $yInnerEnd) = $this->polarToCartesian($outerRadius - $ringThickness, $startAngle);

        $fullPath = "<path fill='$color' d='
            M $xStart $yStart
            A $outerRadius $outerRadius 0 $largeArcFlag $SweepFlag $xOuterEnd $yOuterEnd
            L $xInnerStart $yInnerStart
            A $innerRadius $innerRadius 0 $largeArcFlag $innerSweepFlag $xInnerEnd $yInnerEnd
            Z
            '/>";
        return $fullPath;
    }
protected function createSVGArcPath ( $ outerRadius ) { $ color = $ this -> randomCssColor ( ) ; $ ringThickness = $ this -> ringwidth / 2 ; $ startAngle = $ this -> rand ( 20 , 360 ) ; $ stopAngle = $ this -> rand ( 20 , 360 ) ; if ( $ stopAngle < $ startAngle ) { list ( $ startAngle , $ stopAngle ) = array ( $ stopAngle , $ startAngle ) ; } list ( $ xStart , $ yStart ) = $ this -> polarToCartesian ( $ outerRadius , $ startAngle ) ; list ( $ xOuterEnd , $ yOuterEnd ) = $ this -> polarToCartesian ( $ outerRadius , $ stopAngle ) ; $ innerRadius = $ outerRadius - $ ringThickness ; $ SweepFlag = 0 ; $ innerSweepFlag = 1 ; $ largeArcFlag = ( int ) ( $ stopAngle - $ startAngle < 180 ) ; list ( $ xInnerStart , $ yInnerStart ) = $ this -> polarToCartesian ( $ outerRadius - $ ringThickness , $ stopAngle ) ; list ( $ xInnerEnd , $ yInnerEnd ) = $ this -> polarToCartesian ( $ outerRadius - $ ringThickness , $ startAngle ) ; $ fullPath = "<path fill='$color' d='
            M $xStart $yStart
            A $outerRadius $outerRadius 0 $largeArcFlag $SweepFlag $xOuterEnd $yOuterEnd
            L $xInnerStart $yInnerStart
            A $innerRadius $innerRadius 0 $largeArcFlag $innerSweepFlag $xInnerEnd $yInnerEnd
            Z
            '/>" ; return $ fullPath ; }
Draw a single arc

@param float $outerRadius

@return string
Draw a single arc