是否需要为strokeRect调用context.beginPath()和context.closePath()

时间:2015-03-25 18:03:04

标签: html5 html5-canvas

是否需要为以下代码设置beginPath()和closePath()?

context.strokeStyle = "green";
context.strokeRect(x, y, width, height);

1 个答案:

答案 0 :(得分:0)

不,strokeRect不会像rect那样向路径添加任何内容。将其视为对上下文的一次性直接操作。

<强>&#34;附录&#34;

closePath用于将路径中的第一个点与路径中的最后一个点或子路径(即关闭路径)相连接。矩形已经是一个封闭的子路径。 fill()(和clip())将为您关闭临时路径。这是因为通过开放路径填充形状是不可能的。临时意味着它仅在内部完成,填充完成后路径保持不变。但是如果你打算关闭形状(路径),你需要它用于笔画,你需要在调用stroke()之前调用它。

我看到很多人在完成填充/描边后调用了这个,这有点毫无意义 - 但在填充时并不是真的需要(这开始让人感到困惑吗?:))

beginPath 清除路径,但同样不需要不向路径添加任何内容的方法(strokeRect,fillRect,strokeText,fillText等)