void fillEllipse(double cx, double cy, double rx, double ry, double oriRadian,
                  const double rgb[3])
 {
   // Create vectorial ellipse.
   agg::ellipse ellipse(cx, cy, rx, ry);
   // Render ellipse.
   agg::trans_affine transform;
   ellipse.init(0, 0, rx, ry);
   transform.rotate(oriRadian);
   transform.translate(cx, cy);
   agg::conv_transform<agg::ellipse> ellipticPath(ellipse, transform);
   aa_rasterizer.add_path(ellipticPath);
   agg::render_scanlines_aa_solid(
     aa_rasterizer, scanline, renderer_base,
     agg::rgba(rgb[0], rgb[1], rgb[2]) );
 }
Exemple #2
0
 void ImagePainter::drawEllipse(double cx, double cy, double rx, double ry,
                                double oriRadian, double penWidth,
                                const Vector3d& rgb, double alpha)
 {
   // Create vectorial ellipse.
   agg::ellipse ellipse;
   // Rotate and translate ellipse
   agg::trans_affine transform;
   ellipse.init(0, 0, rx, ry);
   transform.rotate(oriRadian);
   transform.translate(cx, cy);
   // Render ellipse.
   agg::conv_transform<agg::ellipse> ellipticPath(ellipse, transform);
   agg::conv_stroke<agg::conv_transform<agg::ellipse> > ellStroke(ellipticPath);
   ellStroke.width(penWidth);
   aa_rasterizer.add_path(ellStroke);
   agg::render_scanlines_aa_solid(
     aa_rasterizer, scanline, renderer_base,
     agg::rgba(rgb[0], rgb[1], rgb[2], alpha) );
 }