似乎没有本机函数来绘制一个椭圆形形状。此外,我不是在寻找鸡蛋的形状。
可以画一个带有两条贝塞尔曲线的椭圆吗?有人用过这个吗?
我的目的是画一些眼睛,实际上我只是使用圆弧。提前谢谢。
解决方案
因此scale()改变了所有下一个形状的缩放比例。Save()保存之前的设置,restore用于恢复设置以绘制不缩放的新形状。
感谢Jani
ctx.save();
ctx.scale(0.75, 1);
ctx.beginPath();
ctx.arc(20, 21, 10, 0, Math.PI*2, false);
ctx.stroke();
ctx.closePath();
ctx.restore();发布于 2011-12-16 20:39:34
我的解决方案与所有这些略有不同。虽然我认为最接近的答案是上面投票最多的答案,但我认为这种方式更清晰,更容易理解。
http://jsfiddle.net/jaredwilli/CZeEG/4/
function bezierCurve(centerX, centerY, width, height) {
con.beginPath();
con.moveTo(centerX, centerY - height / 2);
con.bezierCurveTo(
centerX + width / 2, centerY - height / 2,
centerX + width / 2, centerY + height / 2,
centerX, centerY + height / 2
);
con.bezierCurveTo(
centerX - width / 2, centerY + height / 2,
centerX - width / 2, centerY - height / 2,
centerX, centerY - height / 2
);
con.fillStyle = 'white';
con.fill();
con.closePath();
}然后像这样使用它:
bezierCurve(x + 60, y + 75, 80, 130);在小提琴中有几个使用示例,还有一个使用quadraticCurveTo的失败尝试。
https://stackoverflow.com/questions/2172798
复制相似问题