canvas lineJoin 屬性
線與線之間可能有交匯的時候。
交匯之處,有可能圓潤,也有可能尖銳。
通過lineJoin屬性可以設定或者返回兩線交匯處的型別。
此屬性的名稱也從側面體現了它的功能,line具有線的意思,join具有交匯的意思。
語法結構:
[JavaScript] 純文字檢視 複製程式碼context.lineJoin="bevel|round|miter";
引數解析:
(1).miter:預設值,說明交匯處為尖角。
(2).round:說明交匯處為圓角。
(3).bevel:說明交匯處為斜角。
瀏覽器相容:
(1).IE9+瀏覽器支援此屬性。
(2).edge瀏覽器支援此屬性。
(3).谷歌瀏覽器支援此屬性。
(4).火狐瀏覽器支援此屬性。
(5).Opera瀏覽器支援此屬性。
(6).Safari瀏覽器支援此屬性。
程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <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.lineWidth=10; ctx.lineJoin="round"; ctx.moveTo(20,20); ctx.lineTo(100,50); ctx.lineTo(20,100); ctx.stroke(); } </script> </head> <body> <canvas id="ant"></canvas> </body> </html>
程式碼執行效果截圖如下:
round具有圓角或者圓弧的意思。
將lineJoin設定為round,可以使直線交匯處呈現圓弧狀。
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <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.lineWidth=10; ctx.lineJoin="bevel"; ctx.moveTo(20,20); ctx.lineTo(100,50); ctx.lineTo(20,100); ctx.stroke(); } </script> </head> <body> <canvas id="ant"></canvas> </body> </html>
程式碼執行效果截圖如下:
將lineJoin屬性值設定為bevel,兩條線的交匯處所形成的尖角被切去了一塊。
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <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.lineWidth=10; ctx.lineJoin="miter"; ctx.moveTo(20,20); ctx.lineTo(100,50); ctx.lineTo(20,100); ctx.stroke(); } </script> </head> <body> <canvas id="ant"></canvas> </body> </html>
程式碼執行效果截圖如下:
將lineJoin屬性值設定為miter,可以使直線交匯處呈現尖角效果。
miter是lineJoin的預設值,它受到miterLimit屬性的影響,看如下程式碼例項:
看一段程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <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.lineWidth=10; ctx.miterLimit=2; ctx.lineJoin="miter"; ctx.moveTo(20,20); ctx.lineTo(100,50); ctx.lineTo(20,100); ctx.stroke(); } </script> </head> <body> <canvas id="ant" width="500" height="400"></canvas> </body> </html>
程式碼執行效果截圖如下:
可以看到箭頭處受到了影響,與將屬性值設定為"bevel"效果完全一致。
不同的是利用miterLimit設定更加靈活,可以自行調整被切掉的尺寸。
首先看一個圖示:
miterLimit屬性用來定義內側角與外側角之間的水平距離。
如果miterLimit屬性規定的尺寸,小於繪製尖角的預設尺寸,將超出的尺寸切掉。
特別說明:miterLimit屬性僅對lineJoin屬性值為miter時有效。
具體參閱canvas miterLimit 屬性一章節。
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> window.onload=function(){ let canvas = document.getElementById("canvas"); let ctx = canvas.getContext("2d"); ctx.lineWidth=10; ctx.lineJoin="round"; ctx.strokeRect(10,10,100,100); } </script> </head> <body> <canvas id="canvas" width="400" height="300"></canvas> </body> </html>
程式碼執行效果截圖如下:
上述程式碼繪製了一個圓角矩形效果。
相關文章
- canvas globalAlpha 屬性Canvas
- canvas miterLimit 屬性CanvasMIT
- canvas font 屬性Canvas
- canvas ImageData data 屬性Canvas
- canvas globalCompositeOperation 屬性Canvas
- canvas shadowOffsetY 屬性Canvas
- canvas shadowOffsetX 屬性Canvas
- canvas ImageData height 屬性Canvas
- canvas ImageData width 屬性Canvas
- canvas textBaseline 屬性Canvas
- canvas ImageData.data 屬性Canvas
- canvas shadowBlur 屬性Canvas
- canvas shadowColor 屬性Canvas
- canvas lineCap 屬性Canvas
- canvas lineWidth 屬性Canvas
- canvas ImageData.height 屬性Canvas
- canvas ImageData.width 屬性Canvas
- CSS與canvas屬性設定畫布尺寸CSSCanvas
- CSS 與 canvas 屬性設定畫布尺寸CSSCanvas
- HTML5 Canvas 資料持久化儲存之屬性列表HTMLCanvas持久化
- CMake 屬性之全域性屬性
- iOS動畫 屬性屬性解析iOS動畫
- defer 屬性和 async 屬性
- CSS 屬性篇(七):Display屬性CSS
- CMake 屬性之目標屬性
- CMake 屬性之目錄屬性
- JavaScript私有屬性和靜態屬性JavaScript
- CSS字型屬性和文字屬性詳解CSS
- 私有屬性
- allowfullscreen 屬性
- background 屬性
- cssText 屬性CSS
- translucent屬性
- parentStyleSheet屬性
- cssRules 屬性CSS
- background屬性
- jQuery 屬性jQuery
- 屬性動畫動畫