原文: http://www.lifelaf.com/blog/?p=371
本文翻譯自Steve Fulton & Jeff Fulton Html5 Canvas, Chapter 2, “Using Paths to Create Lines”
對於Html5 Canvas,我們可以使用“路徑”來描畫任何圖形。路徑,簡單來說就是一系列的點以及連接這些點的線。任何Canvas上下文只會有一個“當前路徑”,而當context.save()調用時,該“當前路徑”並不會被保存。
路徑的開始與結束 調用beginPath()可以開始一個路徑,而調用closePath()則會令該路徑結束。如果連接路徑中的點,那麼這種連接就構成了一個“子路徑”。如果“子路徑”中最後一個點與其自身的第一個點相連,我們就認為該“子路徑”是“閉合”的。
線條的描繪 最基本的路徑操作由反復調用moveTo()和lineTo()命令組成。比如以下這個例子:
復制代碼代碼如下:
function drawScreen() {
context.strokeStyle = "black";
context.lineWidth = 10;
context.lineCap = 'square';
context.beginPath();
context.moveTo(20, 0);
context.lineTo(100, 0);
context.stroke();
context.closePath();
}
在上面的例子中,我們描畫了一條水平的、寬度為10個像素的線段;與此同時,我們還設定了lineCap與strokeStyle屬性。以下是一些常用的屬性列表:
lineCap
lineCap定義了在Canvas中線段兩頭的樣式,可設置為以下三個值中的一個:
butt。默認值;在線段的兩頭添加平直邊緣。
round。在線段的兩頭各添加一個半圓形線帽。線帽直徑等於線段的寬度。
square。在線段的兩頭添加正方形線帽。線帽邊長等於線段的寬度。
lineJoin
lineJoin定義了兩條線段相交處的彎角樣式。以下為三個可選的值:
miter。默認值;創建一個尖角。可以通過設置miterLimit屬性來對尖角長度進行限制 — miterLimit為尖角長度和線條寬度之比的最大值,默認為10。
bevel。創建一個斜角。
round。創建一個圓角。
lineWidth
lineWidth定義了線條的粗細,默認為1.0。
strokeStyle
strokeStyle定義了用於渲染線條的顏色等樣式。
譯注:當lineJoin設定為miter,但是尖角長度超過了miterLimit的限制時,Canvas將顯示“bevel”彎角效果。