Hi,
I'm not a native speaker of English, I'll try to explain my question clearly.
We can draw an ellipsis in inkscape, and rotate it. When we save it as svg, it is saved as a path, which uses elliptical arc command inside the its d attribute. So, i think this save operation is lossless.
We can draw a rectangle in inkscape too. After intersecting an ellipsis with a rectangle and saving the file as svg, we can find out that the intersection is also saved as a path. However, the elliptical arc command is no long inside the d attribute of the path element. The path is depicted by lines and cubic Bézier curves. Mathematically, an elliptical arc can not be losslessly transformed into a polynomial curve. So, this save, or intersection, operation is not lossless.
My question is, how good the approximation would be? Do we have any control over this, like we do in simplify?
Best regards,
yes, you are correct, the conversion from elliptical arc to cubic Bézier curves is not lossless. There have been some bug reports concerning this: - https://bugs.launchpad.net/inkscape/+bug/168218 - https://bugs.launchpad.net/inkscape/+bug/332735
The behaviour in Inkscape is, typically, to try to make sure that the angle of the arc over which the Bezier curve is fit is never more than 90 degrees. If it is, then multiple Beziers will be used. The Bezier curve is applied so that it touches the elliptical arc tangentially at both endpoints of the arc and also at the midpoint as well. The resulting error will be so small that it should not be noticeable on a normal display.
hth, Alvin Penner
On Tue, Dec 20, 2011 at 2:42 AM, Alvin Penner <penner@...2467...> wrote:
yes, you are correct, the conversion from elliptical arc to cubic Bézier curves is not lossless. There have been some bug reports concerning this:
The behaviour in Inkscape is, typically, to try to make sure that the angle of the arc over which the Bezier curve is fit is never more than 90 degrees. If it is, then multiple Beziers will be used. The Bezier curve is applied so that it touches the elliptical arc tangentially at both endpoints of the arc and also at the midpoint as well. The resulting error will be so small that it should not be noticeable on a normal display.
hth, Alvin Penner
Thank you for your explanation. I understand that the approximation can be rather accurate when the elliptical arc is small. It may even be identical pixel to pixel when rasterized for printing. However, the problem is when we draw a circle with large radius, like 30,000 pixels, for high resolution large canvas, the final printed output is no longer identical. Seems adding a huge amount of points on the circle and simplify the largely over-defined curve maybe the only way out right now. Hopefully the two step approximation would produce a better result than a static conversion.
Best Regards,
participants (2)
-
Alvin Penner
-
Auguste Pop