beginPath()和closePath()是否必须在代码中以在HTML5中绘制弧?

时间:2014-04-05 21:17:59

标签: html5 canvas

我刚开始使用HTML5并在屏幕上画了一个圆圈。如果存在beginPath()和closePath(),则会绘制弧,但如果不存在beginPath和closePath,则不会绘制圆。

有没有办法让你绘制弧而不必在代码中放置beginPath()和closePath()。我在某个时候听说过一个人可以像在数组中那样返回beginPath和closePath,但此时它还没有在任何浏览器中实现。

代码:

context.beginPath();
   context.arc(ball.x,ball.y,ball.radius,0,Math.PI*2,true);
context.closePath();

1 个答案:

答案 0 :(得分:0)

这取决于你下一步做什么:

  1. 如果你想要划过弧线,那么closePath()需要连接终点和起点(如果你想要的是圆圈)。如果你想要一个开放弧,那么它就不是必需的。
  2. 如果您想填充弧线,则不需要填充弧线,因为填充将为您(内部)关闭它
  3. beginPath()是开始一条干净路径所必需的。如果你不使用它并且例如抚摸或填充,那么添加更多路径(即弧形)旧路径和新弧将再次填充/抚摸。

    如果弧是添加到画布的第一个形状,则不需要beginPath(),因为路径为空。另请参阅this answer了解他们的工作详情。

    另外,为了防万一,当你添加路径时,你需要stroke()和/或fill()它将它光栅化到画布,因为它们只作为内部向量存在(即路径和子路径)路径)到那时为止。