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

主頁 > 知識庫 > HTML5 Canvas基本線條繪制的實例教程

HTML5 Canvas基本線條繪制的實例教程

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

怎么畫線條?和現實中畫畫差不多:
1.移動畫筆,使畫筆移動至繪畫的開始處
2.確定第一筆的停止點
3.規劃好之后,選擇畫筆(包括畫筆的粗細和顏色等)
4.確定繪制

因為Canvas是基于狀態的繪制(很重要,后面會解釋),所以前面幾步都是在確定狀態,最后一步才會具體繪制。
1.移動畫筆(moveTo())
之前我們獲得了畫筆context,所以以此為例,給出改方法的使用實例——context.moveTo(100,100)。這句代碼的意思是移動畫筆至(100,100)這個點(單位是px)。記住,這里是以canvas畫布的左上角為笛卡爾坐標系的原點,且y軸的正方向向下,x軸的正方向向右。
2.筆畫停點(lineTo())
同理,context.lineTo(600,600)。這句的意思是從上一筆的停止點繪制到(600,600)這里。不過要清楚,這里的moveTo()``lineTo()都只是狀態而已,是規劃,是我準備要畫,還沒有開始畫,只是一個計劃而已!
3.選擇畫筆
這里我們暫且只設置一下畫筆的顏色和粗細。
context.lineWidth = 5,這句話的意思是設置畫筆(線條)的粗細為10px。
context.strokeStyle = "#AA394C",這句話的意思是設置畫筆(線條)的顏色為玫紅色。
因為Canvas是基于狀態的繪制,所以我們在選擇畫筆粗細和顏色的同時,其實也是選擇了線條的粗細和顏色。
4.確定繪制
確定繪制只有兩種方法,fill()和stroke(),有點繪畫基礎的應該知道,前者是指填充,后者是指描邊。因為我們只是繪制線條,所以只要描邊就可以了。調用代碼context.stroke()即可。


畫一個線條
不就一條線段嗎!廢話了這么多!那我們就開始畫吧。

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.moveTo(100,100);   
  22.         context.lineTo(600,600);   
  23.         context.lineWidth = 5;   
  24.         context.strokeStyle = "#AA394C";   
  25.         context.stroke();   
  26.     }   
  27. </script>   
  28. </body>   
  29. </html>   
  30.   

運行結果:

(一直有小伙伴問我頁面右下角的熊是什么鬼?哦哦,之前忘解釋了,那個是我的防偽水印!)
我還標注了一個頁面解析圖,供大家參考。

這里我將原本<canvas>標簽中的width和height去掉了,但在JavaScript代碼中設置了canvas對象的width和height的屬性。

小結:要設置畫布的大小,只有這兩種方法

1.在<canvas>標簽中設置;

2.在JS代碼中設置canvas的屬性.

怎么樣,是不是非常的酷。接下來我們要加快腳步了,繪制一個多線條組成的圖形。是不是感覺自己離藝術家又進了一步呢?別看這只是簡簡單單的一條線段,這一畫只是我們的一小步,但卻是人類的一大步!

繪制折線
上面我們已經成功繪制了一條線段。那么,如果我要繪制有兩個筆畫甚至是很多筆畫的折線怎么辦呢?
聰明的小伙伴肯定已經想到了,這還不簡單,復用lineTo()就可以了。下面我就獻丑隨便畫了一條優美的折線~

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.moveTo(100,100);   
  22.         context.lineTo(300,300);   
  23.         context.lineTo(100,500);   
  24.         context.lineWidth = 5;   
  25.         context.strokeStyle = "#AA394C";   
  26.         context.stroke();   
  27.     }   
  28. </script>   
  29. </body>   
  30. </html>  

運行結果:


繪制多條折線
那同理,我們要繪制多條樣式各不相同的折線怎么辦呢?比如我們在這里畫三條折線,分別是紅色、藍色、黑色。聰明的小伙伴肯定想到了,這還不簡單,只需要平移一下再改下畫筆顏色就行了。代碼格式都一樣的,復制就可以了。代碼如下。

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.moveTo(100,100);   
  22.         context.lineTo(300,300);   
  23.         context.lineTo(100,500);   
  24.         context.lineWidth = 5;   
  25.         context.strokeStyle = "red";   
  26.         context.stroke();   
  27.   
  28.         context.moveTo(300,100);   
  29.         context.lineTo(500,300);   
  30.         context.lineTo(300,500);   
  31.         context.lineWidth = 5;   
  32.         context.strokeStyle = "blue";   
  33.         context.stroke();   
  34.   
  35.         context.moveTo(500,100);   
  36.         context.lineTo(700,300);   
  37.         context.lineTo(500,500);   
  38.         context.lineWidth = 5;   
  39.         context.strokeStyle = "black";   
  40.         context.stroke();   
  41.     }   
  42. </script>   
  43. </body>   
  44. </html>  

運行結果:

咦?是不是很奇怪?說好的先紅色,再藍色,再黑色呢?怎么全是黑色了?其實,這里的原因是我之前一直強調的一點——Canvas是基于狀態的繪制。
什么意思呢?其實這段代碼每次使用stroke()時,它都會把之前設置的狀態再繪制一遍。第一次stroke()時,繪制一條紅色的折線;第二次stroke()時,會再重新繪制之前的那條紅色的折線,但是這個時候的畫筆已經被更換成藍色的了,所以畫出的折線全是藍色的。換言之,strokeStyle屬性被覆蓋了。同理,第三次繪制的時候,畫筆顏色是最后的黑色,所以會重新繪制三條黑色的折線。所以,這里看到的三條折線,其實繪制了3次,一共繪制了6條折線。
那么,我想繪制三條折線,難道就沒有辦法了嗎?藝術家之魂到此為止了么?沒救了么?不,還有辦法。
使用beginPath()開始繪制
為了讓繪制方法不重復繪制,我們可以在每次繪制之前加上beginPath(),代表下次繪制的起始之處為beginPath()之后的代碼。我們在三次繪制之前分別加上context.beginPath()。

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.lineWidth = 5;   
  26.         context.strokeStyle = "red";   
  27.         context.stroke();   
  28.   
  29.         context.beginPath();   
  30.         context.moveTo(300,100);   
  31.         context.lineTo(500,300);   
  32.         context.lineTo(300,500);   
  33.         context.lineWidth = 5;   
  34.         context.strokeStyle = "blue";   
  35.         context.stroke();   
  36.   
  37.         context.beginPath();   
  38.         context.moveTo(500,100);   
  39.         context.lineTo(700,300);   
  40.         context.lineTo(500,500);   
  41.         context.lineWidth = 5;   
  42.         context.strokeStyle = "black";   
  43.         context.stroke();   
  44.     }   
  45. </script>   
  46. </body>   
  47. </html>  

可以看到,這里得到了我們預想的結果。因為使用了beginPath(),所以這里的繪制過程如我們所想的那樣,只繪制了三次,而且每次只繪制一條折線。beginPath()是繪制設置狀態的起始點,它之后代碼設置的繪制狀態的作用域結束于繪制方法stroke()、fill()或者closePath(),至于closePath()之后會講到。
所以我們每次開始繪制前都務必要使用beginPath(),為了代碼的完整性,建議大家在每次繪制結束后使用closePath()。

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

巨人網絡通訊聲明:本文標題《HTML5 Canvas基本線條繪制的實例教程》,本文關鍵詞  HTML5,Canvas,基本,線條,繪制,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML5 Canvas基本線條繪制的實例教程》相關的同類信息!
  • 本頁收集關于HTML5 Canvas基本線條繪制的實例教程的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩视频在线你懂得| 欧美国产综合色视频| 成a人片亚洲日本久久| 在线观看欧美日本| 制服.丝袜.亚洲.另类.中文| 久久综合视频网| 亚洲精品一卡二卡| 大胆亚洲人体视频| 精品少妇一区二区三区免费观看 | 日产精品久久久久久久性色 | 成人综合婷婷国产精品久久蜜臀| 欧美夫妻性生活| 九色综合国产一区二区三区| 欧美亚洲免费在线一区| 日韩在线一区二区三区| 欧美特级限制片免费在线观看| 久久久久久久久久久电影| 视频在线观看一区| 欧美午夜影院一区| 美女爽到高潮91| 中文字幕亚洲精品在线观看| 91美女片黄在线| 视频在线观看91| 精品美女被调教视频大全网站| 久久99精品一区二区三区三区| 国产精品传媒在线| 欧美日韩在线免费视频| 韩国毛片一区二区三区| 亚洲午夜在线视频| 国产欧美日韩精品a在线观看| 成人做爰69片免费看网站| 午夜精品一区二区三区免费视频 | 看片网站欧美日韩| 精品av久久707| 欧美区一区二区三区| 日本怡春院一区二区| 日韩国产精品久久久久久亚洲| 亚洲免费观看在线观看| 亚洲国产精品成人综合| 精品捆绑美女sm三区| 欧美日韩国产高清一区二区三区 | 麻豆精品国产传媒mv男同| 亚洲柠檬福利资源导航| 国产天堂亚洲国产碰碰| 精品奇米国产一区二区三区| 在线精品视频免费播放| av在线不卡电影| 在线欧美小视频| 色诱视频网站一区| 欧美日韩精品一区二区天天拍小说| 99麻豆久久久国产精品免费| 国产成人免费视频网站高清观看视频| 激情深爱一区二区| aaa国产一区| 欧美四级电影网| 久久久不卡影院| 国产精品黄色在线观看| 91激情五月电影| 欧美久久一二三四区| 一本大道av伊人久久综合| 91色视频在线| 91香蕉视频mp4| 欧美日韩激情一区二区| 欧美精品日韩一本| 久久亚洲二区三区| 久久福利资源站| 亚洲成人资源网| 日韩国产欧美视频| 国产精品中文欧美| 成人一区在线观看| 精品理论电影在线观看| 国产精品日日摸夜夜摸av| 成人午夜视频福利| 日韩精品中文字幕一区二区三区 | 91在线观看视频| 欧美mv和日韩mv国产网站| 一级做a爱片久久| 国产一区二区三区黄视频 | 国产亚洲制服色| 成人自拍视频在线观看| 国产乱子伦视频一区二区三区| 日韩视频免费观看高清在线视频| 欧美在线高清视频| 国产精品色呦呦| 国产一区在线观看视频| 在线成人av网站| 无码av中文一区二区三区桃花岛| av不卡在线播放| 亚洲精品免费看| 国产自产v一区二区三区c| www国产精品av| 国产精品性做久久久久久| 欧美亚洲国产一区二区三区 | 91国产免费观看| 日韩中文字幕av电影| 日韩女优电影在线观看| 极品少妇xxxx偷拍精品少妇| 成人激情文学综合网| 国产精品免费网站在线观看| 99在线精品视频| 亚洲成av人片在线观看| 欧美日韩小视频| 久久精品国内一区二区三区| 久久香蕉国产线看观看99| 成人精品视频网站| 一级做a爱片久久| 日韩视频一区二区三区在线播放 | 日韩一区二区精品葵司在线| 国产成人精品亚洲午夜麻豆| 洋洋成人永久网站入口| 日韩视频免费观看高清在线视频| 成人黄色电影在线 | 国产精品一区二区男女羞羞无遮挡| 亚洲午夜久久久久久久久电影院| 一本一道波多野结衣一区二区 | 这里只有精品视频在线观看| 国产成人精品免费| 日韩成人精品在线| 亚洲日穴在线视频| 精品美女一区二区三区| 日韩午夜精品视频| 欧美一区二区三区爱爱| 欧美另类z0zxhd电影| 精品视频一区三区九区| 欧美午夜精品久久久久久孕妇| 91浏览器在线视频| 国产主播一区二区三区| 日韩电影网1区2区| 亚洲国产日产av| 中文字幕一区不卡| 亚洲制服丝袜av| 18成人在线观看| 亚洲一区视频在线| 亚洲成人福利片| 免费在线一区观看| 国产aⅴ综合色| 日韩视频一区二区三区| 色综合天天综合网天天看片| 欧美精品aⅴ在线视频| 国产区在线观看成人精品| 欧美xxxx在线观看| xf在线a精品一区二区视频网站| 久久精品一区八戒影视| 日韩和欧美的一区| 99国产精品视频免费观看| 欧美精品久久久久久久多人混战| 日韩女优av电影| 亚洲一级不卡视频| 成人av免费在线观看| 日韩一二三区视频| 天堂精品中文字幕在线| 99国产精品久久久久久久久久| 91精品国产综合久久久蜜臀图片| 国产揄拍国内精品对白| 欧美成人aa大片| 视频精品一区二区| 欧美日韩成人综合天天影院| 亚洲一区二区中文在线| 亚洲国产视频网站| 菠萝蜜视频在线观看一区| 在线观看91av| 人妖欧美一区二区| 色网站国产精品| 亚洲免费观看高清| 欧美性色欧美a在线播放| 亚洲欧美色综合| 欧美视频一区二区三区四区| 看电影不卡的网站| 欧美精品一区二区精品网| 26uuu欧美| 一本一道波多野结衣一区二区| 国产精品人成在线观看免费 | 亚洲国产精华液网站w| 美女一区二区在线观看| 欧美精品一二三| 国产乱码精品一品二品| 午夜精品久久久久| 国产精品久久久一本精品| 欧美乱熟臀69xxxxxx| 99久久精品一区| 不卡一卡二卡三乱码免费网站| 久久99精品视频| 久草在线在线精品观看| 午夜婷婷国产麻豆精品| 国产精品毛片大码女人| 精品人伦一区二区色婷婷| 91麻豆精品国产91久久久久久久久 | 欧美久久一二区| 激情欧美一区二区三区在线观看| 国产精品不卡在线| 国产精品三级视频| 日韩经典中文字幕一区| 99re这里只有精品视频首页| 亚洲精品在线观看网站| 亚洲愉拍自拍另类高清精品| 国产在线视频精品一区| 欧美日韩一级黄| 日韩精品影音先锋| 日本美女一区二区三区视频| 精品嫩草影院久久|