Ejemplo n.º 1
0
Archivo: Svg.php Proyecto: horde/horde
 /**
  * Draws an arc.
  *
  * @param integer $x      The x coordinate of the centre.
  * @param integer $y      The y coordinate of the centre.
  * @param integer $r      The radius of the arc.
  * @param integer $start  The start angle of the arc.
  * @param integer $end    The end angle of the arc.
  * @param string $color   The line color of the arc.
  * @param string $fill    The fill color of the arc (defaults to none).
  */
 public function arc($x, $y, $r, $start, $end, $color = 'black', $fill = null)
 {
     if (!empty($fill)) {
         $style = 'fill:' . Horde_Image::getHexColor($fill) . '; ';
     } else {
         $style = 'fill:none;';
     }
     $style .= 'stroke:' . Horde_Image::getHexColor($color) . '; stroke-width:1';
     $mid = round(($start + $end) / 2);
     // Calculate the path entry.
     $path = '';
     // If filled, draw the outline.
     if (!empty($fill)) {
         // Start at the center of the ellipse the arc is on.
         $path .= "M {$x},{$y} ";
         // Draw out to ellipse edge.
         list($arcX, $arcY) = Horde_Image::circlePoint($start, $r * 2);
         $path .= 'L ' . round($x + $arcX) . ',' . round($y + $arcY) . ' ';
     }
     // Draw arcs.
     list($arcX, $arcY) = Horde_Image::circlePoint($mid, $r * 2);
     $path .= "A {$r},{$r} 0 0 1 " . round($x + $arcX) . ',' . round($y + $arcY) . ' ';
     list($arcX, $arcY) = Horde_Image::circlePoint($end, $r * 2);
     $path .= "A {$r},{$r} 0 0 1 " . round($x + $arcX) . ',' . round($y + $arcY) . ' ';
     // If filled, close the outline.
     if (!empty($fill)) {
         $path .= 'Z';
     }
     $path = trim($path);
     $this->_svg->addChild(new XML_SVG_Path(array('d' => $path, 'style' => $style)));
 }
Ejemplo n.º 2
0
 /**
  * Shows the rendered image.
  *
  * @access public
  */
 function showImage()
 {
     $this->svg->printElement();
 }