1.設置直線線帽的樣式
ctx.lineCap用來設置直線線帽的樣式,他有以下3個值:
butt:默認
round:圓形線帽
square:正方形線帽
<script>
var canvas = document.querySelector("canvas")
var ctx = canvas.getContext("2d")
// 默認的直線
ctx.moveTo(50,50)
ctx.lineTo(250,50)
ctx.lineWidth = 30
ctx.stroke()
// .lineCap = butt
ctx.beginPath()
ctx.moveTo(50,100)
ctx.lineTo(250,100)
ctx.strokeStyle = "yellow"
ctx.lineCap = "butt"
ctx.stroke()
// .lineCap = round
ctx.beginPath()
ctx.moveTo(50,150)
ctx.lineTo(250,150)
ctx.strokeStyle = "red"
ctx.lineCap = "round"
ctx.stroke()
// .lineCap = square
ctx.beginPath()
ctx.moveTo(50,200)
ctx.lineTo(250,200)
ctx.strokeStyle = "blue"
ctx.lineCap = "square"
ctx.stroke()
</script>
2.設置直線的拐點樣式
ctx.lineJoin用來設置直線的拐點樣式,他有3個可能的值:
miter:尖的
round:圓的
bevel:平的
<script>
var canvas = document.querySelector("canvas")
var ctx = canvas.getContext("2d")
// 默認的直線
ctx.moveTo(50,100)
ctx.lineTo(200,50)
ctx.lineTo(350,100)
ctx.lineWidth = 30
ctx.stroke()
// lineJoin = "miter"
ctx.beginPath()
ctx.moveTo(50,150)
ctx.lineTo(200,100)
ctx.lineTo(350,150)
ctx.strokeStyle = "yellow"
ctx.lineJoin = "miter"
ctx.stroke()
// lineJoin = "round"
ctx.beginPath()
ctx.moveTo(50,200)
ctx.lineTo(200,150)
ctx.lineTo(350,200)
ctx.strokeStyle = "red"
ctx.lineJoin = "round"
ctx.stroke()
// lineJoin = "bevel"
ctx.beginPath()
ctx.moveTo(50,250)
ctx.lineTo(200,200)
ctx.lineTo(350,250)
ctx.strokeStyle = "blue"
ctx.lineJoin = "bevel"
ctx.stroke()
</script>
3.繪制虛線
setLineDash(arr):繪制虛線
他的參數是一個數組,數組元素是數字。虛線是實虛交替的,這個數組的元素用來描述實邊長度和虛邊的長度。
個人理解:
繪制的直線由實線和虛線交替組成,但是虛線的默認長度為0,所以默認的直線是實線。
想要繪制虛線,就要調用setLineDash(arr)設置虛線的寬度>0
一旦設置成虛線,后面的直線就會繼承設置,結果全部繪制成虛線,想要取消,可以重新設置成setLineDash([1,0])
<script>
var canvas = document.querySelector("canvas")
var ctx = canvas.getContext("2d")
// 默認直線繪制成實線
ctx.moveTo(50,50)
ctx.lineTo(300,50)
ctx.lineWidth = 3
ctx.stroke()
// 虛線長度為0則繪制成實線
ctx.beginPath()
ctx.moveTo(50,100)
ctx.lineTo(300,100)
ctx.setLineDash([1,0])
ctx.stroke()
// 設置虛線長度大於0
ctx.beginPath()
ctx.moveTo(50,150)
ctx.lineTo(300,150)
ctx.setLineDash([5,10])
ctx.stroke()
</script