我們可以使用“路徑”來描畫任何圖形。路徑,簡單來說就是一系列的點以及連接這些點的線。任何Canvas上下文只會有一個“當前路徑”,而當context.save()調用時,該“當前路徑”并不會被保存
對于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。默認值;創(chuàng)建一個尖角??梢酝ㄟ^設置miterLimit屬性來對尖角長度進行限制 — miterLimit為尖角長度和線條寬度之比的最大值,默認為10。
bevel。創(chuàng)建一個斜角。
round。創(chuàng)建一個圓角。
lineWidth
lineWidth定義了線條的粗細,默認為1.0。
strokeStyle
strokeStyle定義了用于渲染線條的顏色等樣式。
譯注:當lineJoin設定為miter,但是尖角長度超過了miterLimit的限制時,Canvas將顯示“bevel”彎角效果。