Hi,
The current Inkscape code converts an elliptical arc to a Bezier curve via converting it first to an SBasic curve. This leads to some loss of accuracy to the curve (noticeable now that we are using SVG <circle> and <ellipse> elements where possible) and control over where the resulting nodes will be placed. lib2geom has been patched (r2122) to fix the accuracy problem. Is there a reason this patch hasn't been applied to the copy of lib2geom in Inkscape? (If no, I can apply the patch.)
Even with this patch, it might be better to provide a direct route to go from an elliptical arc to a Bezier curve bypassing the SBasic step to have better control over where nodes are placed. I have made a first pass at providing a direct route. At the moment, one Bezier curve is created if the arc is less than pi/2 in length. If it is longer, extra nodes are placed on the major and minor ellipse axes. Can the lib2geom experts have a look? I am sure I have not done things in a lib2geom sanctioned way. The branch is available at:
lp:~inkscape.dev/inkscape/elliptical_arc
I've attached a test file where the red ellipses/arcs are drawn using an "ideal" conversion to Bezier curves (with four per circle/ellipse) and the blue curves are test arcs. (The Cairo routines convert the arcs to Beziers for display as Cairo/PostScript/PDF do not have a native elliptical arc path segment so just rendering arcs on screen tests the code.)
One obvious bug is that the flash path when using the node tool is wrong.
Thanks,
Tav