¿La relación de la curva de bezier y la elipse?
Quiero dibujar un óvalo en el lienzo html5, y encontré un buen método para hacerlo endesbordamiento de pila.pero tengo otra pregunta.
function drawEllipse(ctx, x, y, w, h) {
var kappa = 0.5522848;
ox = (w / 2) * kappa, // control point offset horizontal
oy = (h / 2) * kappa, // control point offset vertical
xe = x + w, // x-end
ye = y + h, // y-end
xm = x + w / 2, // x-middle
ym = y + h / 2; // y-middle
ctx.beginPath();
ctx.moveTo(x, ym);
ctx.bezierCurveTo(x, ym - oy, xm - ox, y, xm, y);
ctx.bezierCurveTo(xm + ox, y, xe, ym - oy, xe, ym);
ctx.bezierCurveTo(xe, ym + oy, xm + ox, ye, xm, ye);
ctx.bezierCurveTo(xm - ox, ye, x, ym + oy, x, ym);
ctx.closePath();
ctx.stroke();
}
el método en el enlace anterior tiene el uso de bezierCurveTo para dibujar una elipse, pero tiene el dibujo bezierCurveTo4 veces. pero creo que solo2 bezierCurveTo puede dibujar una elipse. Como esto:
pero soy débil en matemáticas, ¿podría alguien decirme la relación de "el punto de control" y "el punto oval", por favor? ¿O debemos dibujar cuatro curvas más bezier para dibujar un óvalo?
gracias a todos