canvas closePath()
看到此方法會不會聯想到beginPath方法,並對它們之間的聯絡產生一些有依據的猜想。
因為程式語言中,很多語法結構是相互照應的,比如endsWith方法與startsWith方法。
既然beginPath方法可以建立一個新的路徑,那麼closePath方法是不是用來結束一個路徑。
答案是否則定的,closePath幾乎與beginPath方法沒有任何關聯。
關於beginPath方法的使用可以參閱canvas beginPath()一章節。
closePath方法的功能並不是結束一個路徑,而是閉合一個子路徑。
它可以將子路徑的終點與起點連線起來。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> window.onload = function () { let canvas = document.getElementById("ant"); let ctx = canvas.getContext("2d"); ctx.beginPath(); ctx.strokeStyle = "blue"; ctx.moveTo(30,20); ctx.lineTo(30,120); ctx.lineTo(100,120); ctx.stroke(); } </script> </head> <body> <canvas id="ant"></canvas> </body> </html>
程式碼執行效果截圖如下:
可以看到路徑的起點位置與終點位置並沒有閉合。
程式碼修改如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> window.onload = function () { let canvas = document.getElementById("ant"); let ctx = canvas.getContext("2d"); ctx.beginPath(); ctx.strokeStyle = "blue"; ctx.moveTo(30,20); ctx.lineTo(30,120); ctx.lineTo(100,120); ctx.closePath(); ctx.stroke(); } </script> </head> <body> <canvas id="ant"></canvas> </body> </html>
程式碼執行效果截圖如下:
可以看到路徑的終點位置和起點位置被一條線連線起來。
這就是closePath方法的作用,用來閉合一個路徑。
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> window.onload = function () { let canvas = document.getElementById("ant"); let ctx = canvas.getContext("2d"); ctx.beginPath(); ctx.strokeStyle = "blue"; ctx.moveTo(30,20); ctx.lineTo(30,120); ctx.stroke(); ctx.beginPath(); ctx.strokeStyle = "red"; ctx.moveTo(30,120); ctx.lineTo(100,120); ctx.lineTo(140,190); ctx.closePath(); ctx.stroke(); } </script> </head> <body> <canvas id="ant" width="300" height="300"></canvas> </body> </html>
程式碼執行效果截圖如下:
第一段程式碼中,位置一與位置二連線起來,但是上面的程式碼是位置三與位置四連線起來。
這是因為closePath方法閉合當前路徑的起始位置與結束位置,上面程式碼中,closePath方法位於新建立的路徑中,與前面已經繪製完畢的圖案沒有任何關係,這需要對路徑概念有所瞭解,具體參閱下面兩篇文章。
(1).路徑可以參閱canvas路徑與子路徑詳解一章節。
(2).beginPath可以參閱canvas beginPath()一章節。
相關文章
- canvas closePath()方法詳解Canvas
- 淺談HTML5中canvas中的beginPath()和closePath()的重要性HTMLCanvas
- canvasCanvas
- WPF C# create canvas and draw ellipse in canvasC#Canvas
- canvas rect()Canvas
- canvas strokeStyleCanvas
- canvas lineTo()Canvas
- canvas strokeRect()Canvas
- canvas createRadialGradient()Canvas
- canvas createLinearGradient()Canvas
- canvas arc()Canvas
- canvas stroke()Canvas
- canvas fill()Canvas
- canvas fillStyleCanvas
- canvas setTransform()CanvasORM
- canvas transform()CanvasORM
- 初探canvasCanvas
- canvas moveTo()Canvas
- canvas beginPath()Canvas
- canvas getContext()CanvasContext
- canvas getImageData()Canvas
- canvas isPointInPath()Canvas
- canvas putImageData()Canvas
- canvas drawImage()Canvas
- canvas clip()Canvas
- canvas arcTo()Canvas
- canvas createPattern()Canvas
- canvas createImageData()Canvas
- canvas restore()CanvasREST
- canvas translate()Canvas
- canvas rotate()Canvas
- canvas scale()Canvas
- canvas measureText()Canvas
- canvas fillText()Canvas
- canvas save()Canvas
- canvas clearRect()Canvas
- canvas fillRect()Canvas
- canvas(三)Canvas