婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > HTML5 Canvas的常用線條屬性值總結

HTML5 Canvas的常用線條屬性值總結

熱門標簽:阜陽企業外呼系統 呼和浩特外呼電銷系統排名 南通數據外呼系統推廣 邢臺縣地圖標注app 外呼線穩定線路 外呼系統電話怎么投訴 申請400電話流程簡介 地圖標注位置能賺錢嗎 pageadm實現地圖標注

線條屬性概述
線條的屬性共有以下四個:
1、lineCap屬性
lineCap 定義上下文中線的端點,可以有以下 3 個值。

butt:默認值,端點是垂直于線段邊緣的平直邊緣。
round:端點是在線段邊緣處以線寬為直徑的半圓。
square:端點是在選段邊緣處以線寬為長、以一半線寬為寬的矩形。

2、 lineJoin屬性
lineJoin 定義兩條線相交產生的拐角,可將其稱為連接。在連接處創建一個填充三角形,可以使用 lineJoin 設置它的基本屬性。

miter:默認值,在連接處邊緣延長相接。miterLimit 是角長和線寬所允許的最大比例(默認是 10)。
bevel:連接處是一個對角線斜角。
round:連接處是一個圓。

3、線寬
lineWidth 定義線的寬度(默認值為 1.0)。


4、筆觸樣式
strokeStyle 定義線和形狀邊框的顏色和樣式。
后面兩個前面已經說過了,這里我們著重來看看前兩個屬性。
線條的帽子lineCap

廢話不多說,直接上代碼看效果。

JavaScript Code復制內容到剪貼板
  1. <!DOCTYPE html>   
  2. <html lang="zh">   
  3. <head>   
  4.     <meta charset="UTF-8">   
  5.     <title>線條的帽子</title>   
  6. </head>   
  7. <body>   
  8. <div id="canvas-warp">   
  9.     <canvas id="canvas" style="border: 1px solid #aaaaaa; display: block; margin: 50px auto;">   
  10.         你的瀏覽器居然不支持Canvas?!趕快換一個吧!!   
  11.     </canvas>   
  12. </div>   
  13.   
  14. <script>   
  15.     window.onload = function(){   
  16.         var canvas = document.getElementById("canvas");   
  17.         canvas.width = 800;   
  18.         canvas.height = 600;   
  19.         var context = canvas.getContext("2d");   
  20.   
  21.         context.lineWidth = 50;   
  22.         context.strokeStyle = "#1BAAAA";   
  23.   
  24.         context.beginPath();   
  25.         context.moveTo(100,100);   
  26.         context.lineTo(700,100);   
  27.         context.lineCap = "butt";   
  28.         context.stroke();   
  29.   
  30.         context.beginPath();   
  31.         context.moveTo(100,300);   
  32.         context.lineTo(700,300);   
  33.         context.lineCap = "round";   
  34.         context.stroke();   
  35.   
  36.         context.beginPath();   
  37.         context.moveTo(100,500);   
  38.         context.lineTo(700,500);   
  39.         context.lineCap = "square";   
  40.         context.stroke();   
  41.   
  42.         //下面畫兩個基準線方便觀察   
  43.         context.lineWidth = 3;   
  44.         context.strokeStyle = "black";   
  45.   
  46.         context.beginPath();   
  47.         context.moveTo(100,0);   
  48.         context.lineTo(100,600);   
  49.         context.moveTo(700,0);   
  50.         context.lineTo(700,600);   
  51.         context.stroke();   
  52.     }   
  53. </script>   
  54. </body>   
  55. </html>   
  56.   

運行結果:

這里我還做了兩條平行線做一下參考,這樣一眼就能看清lineCap三個值的特點。但要注意,這個帽子只在線條的端點處起作用,哪怕是折點很多的折線,也僅僅是在開始和終止的兩個端點帶帽子。如果想改變線條折點(兩個線段的連接處)的樣式,那就要用到下面的lineJoin屬性。
線條的連接lineJoin

廢話不多說,直接上代碼看效果。這段代碼改自4-3,只是設置了一下連接的屬性。

JavaScript Code復制內容到剪貼板
  1. <!DOCTYPE html>   
  2. <html lang="zh">   
  3. <head>   
  4.     <meta charset="UTF-8">   
  5.     <title>線條的連接</title>   
  6. </head>   
  7. <body>   
  8. <div id="canvas-warp">   
  9.     <canvas id="canvas" style="border: 1px solid #aaaaaa; display: block; margin: 50px auto;">   
  10.         你的瀏覽器居然不支持Canvas?!趕快換一個吧!!   
  11.     </canvas>   
  12. </div>   
  13.   
  14. <script>   
  15.     window.onload = function(){   
  16.         var canvas = document.getElementById("canvas");   
  17.         canvas.width = 800;   
  18.         canvas.height = 600;   
  19.         var context = canvas.getContext("2d");   
  20.   
  21.         context.beginPath();   
  22.         context.moveTo(100,100);   
  23.         context.lineTo(300,300);   
  24.         context.lineTo(100,500);   
  25.         context.lineJoin = "miter";   
  26.         context.lineWidth = 20;   
  27.         context.strokeStyle = "red";   
  28.         context.stroke();   
  29.   
  30.         context.beginPath();   
  31.         context.moveTo(300,100);   
  32.         context.lineTo(500,300);   
  33.         context.lineTo(300,500);   
  34.         context.lineJoin = "bevel";   
  35.         context.lineWidth = 20;   
  36.         context.strokeStyle = "blue";   
  37.         context.stroke();   
  38.   
  39.         context.beginPath();   
  40.         context.moveTo(500,100);   
  41.         context.lineTo(700,300);   
  42.         context.lineTo(500,500);   
  43.         context.lineJoin = "round";   
  44.         context.lineWidth = 20;   
  45.         context.strokeStyle = "black";   
  46.         context.stroke();   
  47.     }   
  48. </script>   
  49. </body>   
  50. </html>  

運行結果:

看不清的童鞋自己放大網頁或者自己將代碼的線寬調寬一點。
這里有一個很隱蔽的屬性,就是當lineJoin設置為miter時(默認),會解鎖一個成績,可以使用miterLimit屬性。
舉個例子看看。

JavaScript Code復制內容到剪貼板
  1. <!DOCTYPE html>   
  2. <html lang="zh">   
  3. <head>   
  4.     <meta charset="UTF-8">   
  5.     <title>miterLimit</title>   
  6. </head>   
  7. <body>   
  8. <div id="canvas-warp">   
  9.     <canvas id="canvas" style="border: 1px solid #aaaaaa; display: block; margin: 50px auto;">   
  10.         你的瀏覽器居然不支持Canvas?!趕快換一個吧!!   
  11.     </canvas>   
  12. </div>   
  13.   
  14. <script>   
  15.     window.onload = function(){   
  16.         var canvas = document.getElementById("canvas");   
  17.         canvas.width = 800;   
  18.         canvas.height = 600;   
  19.         var context = canvas.getContext("2d");   
  20.   
  21.         context.beginPath();   
  22.         context.moveTo(100,100);   
  23.         context.lineTo(300,300);   
  24.         context.lineTo(100,500);   
  25.         context.lineJoin = "miter";   
  26.         context.miterLimit = 10;   
  27.         context.lineWidth = 5;   
  28.         context.strokeStyle = "red";   
  29.         context.stroke();   
  30.   
  31.         context.beginPath();   
  32.         context.moveTo(300,200);   
  33.         context.lineTo(500,300);   
  34.         context.lineTo(300,400);   
  35.         context.lineJoin = "miter";   
  36.         context.miterLimit = 10;   
  37.         context.lineWidth = 5;   
  38.         context.strokeStyle = "blue";   
  39.         context.stroke();   
  40.   
  41.         context.beginPath();   
  42.         context.moveTo(500,290);   
  43.         context.lineTo(700,300);   
  44.         context.lineTo(500,310);   
  45.         context.lineJoin = "miter";   
  46.         context.miterLimit = 10;   
  47.         context.lineWidth = 5;   
  48.         context.strokeStyle = "black";   
  49.         context.stroke();   
  50.     }   
  51. </script>   
  52. </body>   
  53. </html>  

運行結果:

會發現,這個miterLimit規定了一個自動填充連接點的極限值。如果超過了這個值,會導致lineJoin屬性失效,會從 miter 變成 bevel。可以看出來,這個值和線寬以及夾角有關,具體是啥關系。看下圖。

可以看到,關系有點復雜。有興趣的小伙伴可以推導一下這個值與線寬、夾角的函數關系。其實,大多時候用不到這個隱藏屬性,即便用到了也是憑感覺寫個數然后不滿意再調試即可。
高級線段繪制舉例
實際在畫布上繪制線段時,會有一些奇怪的現象發生,這里融合本節課學到的兩個線段的屬性講解一個。

JavaScript Code復制內容到剪貼板
  1. <!DOCTYPE html>   
  2. <html lang="zh">   
  3. <head>   
  4.     <meta charset="UTF-8">   
  5.     <title>miterLimit</title>   
  6. </head>   
  7. <body>   
  8. <div id="canvas-warp">   
  9.     <canvas id="canvas" style="border: 1px solid #aaaaaa; display: block; margin: 50px auto;">   
  10.         你的瀏覽器居然不支持Canvas?!趕快換一個吧!!   
  11.     </canvas>   
  12. </div>   
  13.   
  14. <script>   
  15.     window.onload = function(){   
  16.         var canvas = document.getElementById("canvas");   
  17.         canvas.width = 800;   
  18.         canvas.height = 600;   
  19.         var context = canvas.getContext("2d");   
  20.   
  21.         // 實例1: 圓形端點,斜角連接,在畫布左上角   
  22.         context.beginPath();   
  23.         context.moveTo(0,0);   
  24.         context.lineTo(180,0);   
  25.         context.lineTo(180,180);   
  26.         context.lineJoin = 'bevel';   
  27.         context.lineCap = 'round';   
  28.         context.lineWidth = 10;   
  29.         context.strokeStyle = "red";   
  30.         context.stroke();   
  31.   
  32.         // 實例2: 圓形端點,斜角連接,不在畫布左上角   
  33.         context.beginPath();   
  34.         context.moveTo(300,200);   
  35.         context.lineTo(480,200);   
  36.         context.lineTo(480,380);   
  37.         context.lineJoin = 'bevel';   
  38.         context.lineCap = 'round';   
  39.         context.lineWidth = 10;   
  40.         context.strokeStyle = "blue";   
  41.         context.stroke();   
  42.   
  43.         // 實例3: 平直端點,圓形連接,不在畫布左上角   
  44.         context.beginPath();   
  45.         context.moveTo(600,400);   
  46.         context.lineTo(780,400);   
  47.         context.lineTo(780,580);   
  48.         context.lineJoin = 'round';   
  49.         context.lineCap = 'butt';   
  50.         context.lineWidth = 10;   
  51.         context.strokeStyle = "black";   
  52.         context.stroke();   
  53.     }   
  54. </script>   
  55. </body>   
  56. </html>  

運行結果:

這 3 個線段和連接的實例有助于說明在畫布上繪制線段時不同屬性的組合。
實例 1 嘗試從畫布左上角開始繪制,結果發生了一個奇怪的現象。Canvas 路徑在 x 軸和 y 軸方向上都繪制到了起點的外側。由于這個原因實例 1 上面的線看起來要細些。另外,左上角水平部分中圓形端點也無法看到,它們都被繪制到了屏幕之外的負值坐標區域。此外,lineJoin 定義的對角線斜角也沒有繪出。
實例 2 調整了例子 1 中出現的問題,將起始點離開左上角。這樣就繪制出了完整的水平線,并且圓形 lineCap 和斜角 lineJoin 都被繪制出來了。
實例 3 顯示了去掉 lineCap 設置后的默認端點效果,并且將 lineJoin 調整為圓角。

標簽:撫順 辛集 德州 內蒙古 黃山 蚌埠 楊凌 鶴崗

巨人網絡通訊聲明:本文標題《HTML5 Canvas的常用線條屬性值總結》,本文關鍵詞  HTML5,Canvas,的,常用,線條,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML5 Canvas的常用線條屬性值總結》相關的同類信息!
  • 本頁收集關于HTML5 Canvas的常用線條屬性值總結的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美成人女星排名| 久久一夜天堂av一区二区三区| 欧美视频日韩视频| 国产精品久久久久久久久快鸭| 成人福利在线看| 夜夜嗨av一区二区三区网页| 99精品国产91久久久久久| ...av二区三区久久精品| 91成人在线观看喷潮| 视频一区视频二区中文| 欧美一激情一区二区三区| 久久精品国产色蜜蜜麻豆| 欧美videofree性高清杂交| 国模大尺度一区二区三区| 久久综合久久综合亚洲| av一区二区久久| 亚洲成a人v欧美综合天堂| 欧美tk丨vk视频| 91麻豆免费观看| 国产成人精品在线看| 91视频国产观看| 午夜视频一区二区| 精品国产免费一区二区三区四区 | 亚洲精品第一国产综合野| 色素色在线综合| 麻豆国产91在线播放| 国产精品美女久久久久aⅴ| 欧美丝袜第三区| 极品美女销魂一区二区三区 | 不卡av在线免费观看| 日韩成人av影视| 亚洲色图欧美激情| 精品国产污污免费网站入口| 欧美在线免费观看亚洲| 国产一区二区三区美女| 亚洲激情成人在线| 精品粉嫩超白一线天av| 一本一道综合狠狠老| 国产成人在线免费观看| 日韩av不卡在线观看| 自拍偷在线精品自拍偷无码专区| 日韩精品一区二区三区在线播放| 在线欧美小视频| 成人18视频日本| 精品一区在线看| 99久久精品国产导航| 麻豆91精品91久久久的内涵| 亚洲日本乱码在线观看| 久久免费看少妇高潮| 欧美精品vⅰdeose4hd| 日本道在线观看一区二区| 国产69精品久久久久777| 青青国产91久久久久久| 亚洲综合一区二区三区| 国产精品女人毛片| 久久色成人在线| 自拍偷拍亚洲激情| 久久婷婷色综合| 91麻豆精品一区二区三区| 国产精品99久久久久久似苏梦涵| 久久电影网电视剧免费观看| 日韩不卡一区二区三区| 日韩黄色片在线观看| 日韩av一区二区三区| 午夜精品爽啪视频| 日韩综合小视频| 日本不卡视频一二三区| 欧美bbbbb| 国产专区欧美精品| 成人免费视频免费观看| 91网站视频在线观看| 欧美日韩中文国产| 欧美日韩成人综合在线一区二区| 欧美精品第1页| 精品乱码亚洲一区二区不卡| 久久日韩粉嫩一区二区三区| 国产精品色在线观看| 亚洲乱码日产精品bd| 日日夜夜精品视频天天综合网| 午夜精品久久久久久久99水蜜桃| 精品中文字幕一区二区| av一二三不卡影片| 欧美久久久久中文字幕| 精品日韩在线观看| 亚洲三级在线播放| 亚洲3atv精品一区二区三区| 国产一区二区三区蝌蚪| 91啪九色porn原创视频在线观看| 久久久久久久久伊人| 中文字幕一区二区三区在线观看 | 午夜精品成人在线视频| 日韩精品1区2区3区| 国产成人精品亚洲777人妖| 91精品1区2区| 久久免费偷拍视频| 亚洲va欧美va天堂v国产综合| 国产一区二区三区四| 欧美最猛性xxxxx直播| 久久色在线观看| 午夜视频一区二区三区| 成人黄色片在线观看| 日韩色视频在线观看| 亚洲免费观看在线观看| 久久精品国产精品亚洲精品| 色婷婷综合久久久久中文| 久久婷婷国产综合精品青草| 亚洲在线免费播放| 国产风韵犹存在线视精品| 欧美精品日韩一本| 亚洲免费观看高清完整版在线观看| 美国十次综合导航| 欧美日韩中文字幕精品| 亚洲色图视频免费播放| 国产成人精品亚洲午夜麻豆| 欧美一区二区三区日韩视频| 亚洲视频一区二区在线观看| 国内一区二区视频| 欧美久久免费观看| 亚洲一区二区在线免费看| 国产**成人网毛片九色 | 欧美一区二区美女| 亚洲一区二区三区四区五区中文 | 一区二区三区四区在线免费观看 | 国产精品热久久久久夜色精品三区| 偷偷要91色婷婷| 国产成人a级片| 成人性视频网站| 日韩女优av电影在线观看| 亚洲一区二区三区国产| 一本色道久久综合精品竹菊| 国产精品亲子乱子伦xxxx裸| 国产一区二区不卡| 精品国产污网站| 麻豆一区二区三| 日韩欧美在线1卡| 美女视频黄 久久| 欧美一级久久久久久久大片| 日韩精品一卡二卡三卡四卡无卡| 欧美性大战久久久| 亚洲黄色录像片| 欧美三级电影精品| 亚洲成a人片综合在线| 欧美日本韩国一区| 另类小说视频一区二区| 久久嫩草精品久久久精品| 国产成人免费在线观看| 欧美国产日产图区| 99久久精品免费看国产免费软件| 中文字幕一区在线观看视频| 99视频有精品| 亚洲精品日韩综合观看成人91| 欧美影院一区二区| 奇米色一区二区| 久久综合久久综合久久综合| 国产一区二区伦理| ...av二区三区久久精品| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 亚洲大片一区二区三区| 色94色欧美sute亚洲线路一ni| 韩国精品免费视频| 成人小视频在线观看| 精品午夜一区二区三区在线观看| 久久久欧美精品sm网站| 狠狠网亚洲精品| 国产日韩精品一区二区三区| 国产拍揄自揄精品视频麻豆| 国产精品天天摸av网| 亚洲精选一二三| 国产精品理伦片| 国产精品国产三级国产aⅴ原创| 国产色产综合产在线视频| 性做久久久久久久久| 欧美va亚洲va| 色婷婷综合久久久中文一区二区| 天涯成人国产亚洲精品一区av| 日韩欧美亚洲另类制服综合在线| 国产毛片精品视频| 亚洲狠狠丁香婷婷综合久久久| 日韩欧美视频一区| 色综合视频在线观看| 国产综合久久久久影院| 亚洲一区二区三区影院| 国产欧美日韩精品一区| 欧美伦理影视网| 91精品国产黑色紧身裤美女| 国产麻豆精品theporn| 亚洲精品乱码久久久久久久久| 欧美电影免费提供在线观看| 欧美性做爰猛烈叫床潮| av在线不卡电影| 久久国产精品色婷婷| 亚洲一区二区三区自拍| 中文字幕一区二区三区不卡在线| 精品久久一区二区三区| 在线视频欧美精品| 成人手机在线视频| 经典三级视频一区| 蜜桃精品视频在线观看| 国产精品大尺度| 欧美激情在线看|