John Hunter wrote:
> On Nov 14, 2007 1:53 PM, Ryan May <[EMAIL PROTECTED]> wrote:
>> Hi,
>>
>> Is there any reason that circles are approximated by polygons when
>> written out by vector graphics backends (i.e. SVG, PS)?  Someone pointed
>> this out to me, and having verified it, I found it surprising.  I would
>> think since at least SVG directly supports circles, they'd be used for
>> output.
> 
> This has been fixed in mpl svn for Agg and PS and will be included in
> the next release, but not yet for SVG.  In the "transforms" branch,
> all supported backends (including Agg, PS and SVG draw "true" circles,
> and the plan is to merge these changes into the main trunk sometime
> after the next release.

On the branch, circles are actually approximated using cubic bezier 
curves.  These apparently have a maximum radial error of less than 1e-3, 
so should be indistinguishable to the naked eye.  I suspect that many 
rendering engines (e.g. Acrobat Reader) draw circles that way anyway for 
efficiency.  But you still won't see "circle" elements in the SVG files.

This distinction is only important when you try to edit or analyse the 
resulting files -- since they aren't "logical" circles, a vector editor 
(e.g. inkscape), won't edit them as circles, but as paths.  But since 
post-editing matplotlib plots is kind of problematic in a number of 
other ways, I don't know if that's a real problem.

(The point of all this is to reduce the number of required drawing 
commands in the backends to the lowest common denominator.  You can draw 
virtually anything (with reasonable approximation) with polycurves, so 
that is now the only drawing primitive that mpl will ever output.)

Cheers,
Mike

-- 
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to