我在HTML5畫布使用此功能(How to draw an oval in html5 canvas?)繪製一個橢圓:如何繪製用三次貝塞爾曲線繪製的橢圓的一部分?
function drawEllipse(ctx, x, y, w, h) {
var kappa = .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();
}
然後,我得到所有這些值,並將其發送給我的Android應用程序。在那裏,我使用Path類的cubicTo方法繪製相同的橢圓。爲此,我只使用上面的函數的相同參數,它像魅力一樣工作。
但是現在,我只能畫出這個橢圓的一部分,而我在Google上沒有找到任何可以幫助我解決這個問題的東西。我想要做的是,具有這種第一橢圓:
我希望能夠利用這些圖像:
我該怎麼做這種事?
可能值得編輯您的帖子以指出哪些API可供您在Android上無法在網上使用(canvas2d沒有橢圓形drawArc atm,例如只有圓形) – 2013-04-19 11:47:35