d3-path
d3-path copied to clipboard
Add support for ellipse() ?
It would be very useful to have support for the ellipse()
method.
Specs: https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-ellipse
Is ellipse new? Doesn’t look like part of CanvasPathMethods:
https://www.w3.org/TR/2dcontext/#canvaspathmethods
I found it in this MDN documentation page, which lead to the HTML Living Standard spec.
I am not 100% sure about the status of these specifications, but the W3C one you mentioned is marked as "superseded". A level 2 spec was in the working, but it seems to be abandoned: https://www.w3.org/TR/2dcontext2/
I tested ellipse()
with canvas on Chrome 88. It also seems to be widely adopted, according to https://caniuse.com/mdn-api_canvasrenderingcontext2d_ellipse
I hope it could be a matter of adapting the code to accept two different radii, given that the A
command in an SVG path definition already represents an elliptical arc (and providing an ellipse()
method, which could be also leveraged by arc()
).
@nitaku Do you have an idea in mind for what the API could look like?
I would expect this signature for the ellipse method:
ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, counterclockwise)
as described here in more detail: https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-ellipse It would be identical to the ellipse method defined for canvas.
We used a few test renderings made with Canvas as a reference. Here is a CodePen that compares Canvas and SVG renderings made with the modified code: https://codepen.io/nitaku/pen/dyvyGaZ