久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

HTML5 Canvas繪制線條入門示例

來源于:

https://www.jb51.net/html5/439875.html

理論部分:

在html5中,canvas標簽本身并沒有任何行為,僅僅只是在頁面上占用指定大小的頁面空白空間。canvas標簽就相當于一塊空白的畫布,還需要我們自己使用JavaScript提供的canvas API編寫相應的代碼從而在這塊畫布上繪制出我們想要的圖形。

備注:canvas標簽體內的文字內容將會在不支持html5的瀏覽器中顯示。如上述html代碼所示,如果你的瀏覽器不支持html5的canvas標簽,那么將會在canvas標簽處顯示文字「您的瀏覽器不支持canvas標簽」。

作為「畫家」的我們,首先需要熟悉我們手中的畫筆,也就是JavaScript中的Canvas對象及其相關內容。

在html5中,一個canvas標簽就對應一個Canvas對象,我們在JavaScript可以使用document.getElementById()等常規函數來獲取該對象。值得注意的是,在JavaScript中,我們并不是直接操作Canvas對象,而是通過Canvas對象來獲取對應的圖形繪制上下文對象CanvasRenderingContext2D,然后我們再利用CanvasRenderingContext2D對象自帶的許多繪制圖形的函數來繪圖。

這就好像是每一張畫布都對應一支畫筆,要想在畫布上繪畫,我們就先要拿到對應的畫筆,然后使用這支畫筆在畫布上繪圖。CanvasRenderingContext2D對象就相當于這支畫筆.

我們可以使用Canvas對象的getContext()方法來獲取CanvasRenderingContext2D對象。比較細心的讀者應該注意到了:getContext()方法需要傳入一個字符串——2d,獲取到的CanvasRenderingContext2D對象的名稱中也帶有2D。這是因為,目前html5只支持2D繪圖,但是在未來的html5中也可能支持3D或其他形式的繪圖。屆時,我們可能就需要使用getContext("3d")來獲取CanvasRenderingContext3D對象并繪制3D圖形了。

使用html5 canvas繪制線條(直線、折線等)

使用html5 Canvas繪制直線所需的CanvasRenderingContext2D對象的主要屬性和方法(有"()"者為方法)如下:

  1. strokeStyle用于設置畫筆繪制路徑的顏色、漸變和模式。該屬性的值可以是一個表示css顏色值的字符串。如果你的繪制需求比較復雜,該屬性的值還可以是一個CanvasGradient對象或者CanvasPattern對象globalAlpha定義繪制內容的透明度,取值在0.0(完全透明)和1.0(完全不透明)之間,默認值為1.0。
  2. lineWidth定義繪制線條的寬度。默認值是1.0,并且這個屬性必須大于0.0。較寬的線條在路徑上居中,每邊各有線條寬的一半。lineCap指定線條兩端的線帽如何繪制。合法的值是 "butt"、"round"和"square"。默認值是"butt"。
  3. beginPath()開始一個新的繪制路徑。每次繪制新的路徑之前記得調用該方法。它將重置內存中現有的路徑。
  4. moveTo(int x, int y)移動畫筆到指定的坐標點(x,y),該點就是新的子路徑的起始點
  5. lineTo(int x, int y)使用直線連接當前端點和指定的坐標點(x,y)
  6. stroke(int x, int y)沿著繪制路徑的坐標點順序繪制直線
  7. closePath()如果當前的繪制路徑是打開的,則關閉掉該繪制路徑。此外,調用該方法時,它會嘗試用直線連接當前端點與起始端點來關閉路徑,但如果圖形已經關閉(比如先調用了stroke())或者只有一個點,它會什么都不做。
HTML5 Canvas繪制線條入門示例

在Canvas的圖形繪制過程中,幾乎都是先按照一定順序先定下幾個坐標點,也就是所謂的繪制路徑,然后再根據我們的需要將這些坐標點用指定的方式連接起來,就形成了我們所需要的圖形。當我們了解了CanvasRenderingContext2D對象的上述API后,那么繪制線條就顯得非常簡單了。

畫一條藍色的直線

<!DOCTYPE html>   
<html>   
<head>   
<meta charset="UTF-8">   
<title>HTML5 Canvas繪制線條入門示例</title>   
</head>   
<body>   
  
<!-- 添加canvas標簽,并加上紅色邊框以便于在頁面上查看 -->   
<canvas id="myCanvas" width="400px" height="300px" style="border: 1px solid red;">   
您的瀏覽器不支持canvas標簽。   
</canvas>   
  
<script type="text/javascript">   
//獲取Canvas對象(畫布)   
var canvas = document.getElementById("myCanvas");   
//簡單地檢測當前瀏覽器是否支持Canvas對象,以免在一些不支持html5的瀏覽器中提示語法錯誤   
if(canvas.getContext){     
    //獲取對應的CanvasRenderingContext2D對象(畫筆)   
    var ctx = canvas.getContext("2d");   
       
    //注意,Canvas的坐標系是:Canvas畫布的左上角為原點(0,0),向右為橫坐標,向下為縱坐標,單位是像素(px)。   
       
    //開始一個新的繪制路徑   
    ctx.beginPath();   
    //定義直線的起點坐標為(10,10)   
    ctx.moveTo(10, 10);   
    //定義直線的終點坐標為(50,10)   
    ctx.lineTo(50, 50);   
	//定義直線的顏色
	ctx.strokeStyle = "blue";   
    //沿著坐標點順序的路徑繪制直線   
    ctx.stroke();   
    //關閉當前的繪制路徑   
    ctx.closePath();   
}   
</script>   
</body>   
</html>  

畫一條藍色的折線:

HTML5 Canvas繪制線條入門示例
//開始一個新的繪制路徑   
    ctx.beginPath();   
    //定義直線的起點坐標為(10,10)   
    ctx.moveTo(10, 10);   
	//定義中間點坐標1 
	ctx.lineTo(100,35);
	//定義中間點坐標2
	ctx.lineTo(50,100);
    //定義直線的終點坐標為(50,50)   
    ctx.lineTo(50, 50);   
	//定義直線的顏色
	ctx.strokeStyle = "blue";   
    //沿著坐標點順序的路徑繪制直線   
    ctx.stroke();   
    //關閉當前的繪制路徑   
    ctx.closePath();   

補充

掌握上述內容后,相信大家對使用Canvas繪制線條有一些基本的了解了吧。由于對線條的寬度、透明度等控制只是設置單個屬性即可,請參考上面的相關API,這里就不再贅述了。

強烈注意:在繪制圖形路徑時,一定要先調用beginPath()。beginPath()方法將會清空內存中之前的繪制路徑信息。如果不這樣做,對于繪制單個圖形可能沒什么影響,但是在繪制多個圖形時(例如上面示例的兩條直線),將會導致路徑繪制或者顏色填充等操作出現任何意料之外的結果。

此外,對于closePath()方法,初學者一定要稍加注意,尤其是上面API表格中closePath()方法描述中的紅色文字。在上面繪制折線的代碼示例中,我們先調用了stroke(),再調用了closePath()。其實在調用stroke()方法時,折線就已經繪制好了,當前的繪制路徑也就被關閉掉了,所以再調用closePath()方法時,它就不會使用直線連接當前端點和起始端點(也就是說,這里的closePath()是可有可無的,不過為了保持良好的習慣,還是建議寫上)。如果我們交換一下stroke()和closePath()的調用順序,則情況完全不一樣了。由于closePath()先調用,此時繪制路徑并沒有關閉,那么closePath()將會用直線連接當前端點和起始端點。

交換stroke()和closePath()調用順序后的示例代碼如下:

交換調用順序后,對應的顯示效果如下:

HTML5 Canvas繪制線條入門示例

給TA贊賞
共{{data.count}}人
人已贊賞
??
Npcink上的部份代碼及教程來源于互聯網,僅供網友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
無意侵害您的權益,請發送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
?
購物車
優惠劵
搜索
久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

    9000px;">

      国产精品1024| 99这里都是精品| 国产v日产∨综合v精品视频| 欧美性一区二区| 日本一区二区三区高清不卡 | 亚洲欧洲av在线| 91美女片黄在线| 亚洲精品中文在线影院| 日本韩国欧美三级| 日韩av电影天堂| 精品福利在线导航| av电影在线不卡| 日韩黄色小视频| 欧美激情综合五月色丁香小说| 国产精品一区二区视频| 亚洲欧美日韩精品久久久久| 欧美疯狂性受xxxxx喷水图片| 日产精品久久久久久久性色| 国产日产欧美一区二区三区 | eeuss影院一区二区三区| 亚洲v精品v日韩v欧美v专区| 91精品国产综合久久久久久| 成人免费视频免费观看| 男女男精品网站| 综合分类小说区另类春色亚洲小说欧美 | 久久美女艺术照精彩视频福利播放| 国产精品99久久久久久宅男| 午夜精品123| 亚洲免费观看高清完整| 国产精品久久久爽爽爽麻豆色哟哟 | 成人午夜免费av| 国产98色在线|日韩| 国产成人鲁色资源国产91色综| 五月婷婷激情综合网| 亚洲国产一区二区a毛片| 亚洲欧美色图小说| 亚洲已满18点击进入久久| 亚洲免费资源在线播放| 1000精品久久久久久久久| 一区视频在线播放| 中文字幕视频一区二区三区久| 久久久国产综合精品女国产盗摄| 久久综合狠狠综合久久激情| 久久精品视频一区二区| 国产精品久久久久一区二区三区| 欧美激情艳妇裸体舞| 亚洲影视资源网| 精品一区二区免费看| www.日韩av| 精品处破学生在线二十三| 国产精品午夜久久| 午夜久久电影网| 成人免费不卡视频| 欧美一区二区三区免费大片| 国产视频一区不卡| 视频一区在线播放| 99久久精品国产精品久久| 欧美不卡在线视频| 一区二区三区产品免费精品久久75| 日本欧美加勒比视频| 日本高清不卡在线观看| 日本一区二区综合亚洲| 日本在线不卡视频一二三区| 91色|porny| 久久久精品欧美丰满| 日韩av电影天堂| 波多野结衣一区二区三区 | 蜜臀av一区二区| 欧美三级在线看| 一级日本不卡的影视| 粉嫩绯色av一区二区在线观看| 欧美在线一二三| 亚洲视频资源在线| 91视频.com| 国产精品女主播在线观看| 国产大陆精品国产| 精品成人免费观看| 首页国产欧美久久| 欧美一级黄色大片| 国产91丝袜在线播放九色| 欧美电影一区二区三区| 五月婷婷激情综合网| 久久精品日产第一区二区三区高清版| 国产成人在线视频网站| 中文字幕一区三区| 欧美日韩国产综合草草| 蜜桃视频一区二区三区| 久久久美女毛片| 91在线你懂得| 久久97超碰国产精品超碰| 久久久五月婷婷| 色综合天天综合狠狠| 奇米影视在线99精品| 国产精品乱人伦| 日韩欧美高清dvd碟片| av网站免费线看精品| 五月天一区二区| 亚洲欧美成aⅴ人在线观看| 91精品在线免费观看| 久久美女艺术照精彩视频福利播放 | 亚洲成国产人片在线观看| 欧美日韩在线免费视频| 亚洲观看高清完整版在线观看| 欧美一级国产精品| 91日韩一区二区三区| 蜜桃久久精品一区二区| 国产视频在线观看一区二区三区| 国产精品456| 国产精品亚洲一区二区三区妖精| 亚洲va韩国va欧美va| 中文字幕一区二区三| 国产欧美精品国产国产专区| 99re视频精品| 日本高清不卡视频| 国产suv精品一区二区6| 狠狠v欧美v日韩v亚洲ⅴ| 国产在线精品一区在线观看麻豆| 男人的天堂久久精品| 国产中文一区二区三区| 国产在线播放一区三区四| 欧美一区二区免费视频| 国产一区三区三区| 成人av网在线| 不卡免费追剧大全电视剧网站| 国产成人av一区二区三区在线观看| 日日夜夜免费精品| 国产美女精品人人做人人爽| 国产精品一区久久久久| 捆绑调教美女网站视频一区| 国内成人精品2018免费看| 国产伦精品一区二区三区在线观看 | 亚洲国产一区二区视频| 亚洲色图制服丝袜| 亚洲免费观看高清在线观看| 亚洲视频1区2区| 久久疯狂做爰流白浆xx| 国产成人av一区二区三区在线观看| 国产成人av一区二区三区在线| 成人亚洲一区二区一| 欧美精品vⅰdeose4hd| 国产午夜精品一区二区三区嫩草 | 亚洲精品一线二线三线无人区| 国产精品理论片在线观看| 日本视频一区二区三区| 日本乱人伦一区| 国产精品福利av| 丁香婷婷综合网| 国产精品伦一区| 96av麻豆蜜桃一区二区| 国产片一区二区| 精品综合久久久久久8888| 欧美一区二区三区免费视频| 亚洲最大的成人av| 精品视频一区三区九区| 亚洲一区二区三区四区中文字幕| 欧美日韩三级在线| 婷婷久久综合九色国产成人| 欧美人牲a欧美精品| 亚洲色图制服诱惑| 国产午夜精品一区二区| 精品国产91九色蝌蚪| 日韩欧美在线1卡| 国产精品一区二区黑丝| 亚洲视频免费在线| 欧美伦理视频网站| 成人免费毛片高清视频| 男女男精品网站| 亚洲夂夂婷婷色拍ww47| 91麻豆精品国产综合久久久久久| 精品一区二区日韩| 亚洲欧美日韩国产成人精品影院| 在线91免费看| 成人精品在线视频观看| 青青草视频一区| 美国毛片一区二区三区| 亚洲精品视频在线观看免费| 亚洲精品在线电影| 国产日韩欧美综合一区| 国产亚洲短视频| 亚洲精品亚洲人成人网在线播放| 亚洲视频 欧洲视频| 亚洲一区在线视频| 午夜精品免费在线| 免费看精品久久片| 久久精品噜噜噜成人88aⅴ| 中文字幕一区二| 亚洲国产精品久久久男人的天堂| 亚洲综合久久久久| 激情文学综合网| 国产成人午夜视频| 一本久道久久综合中文字幕| 色美美综合视频| 久久一区二区三区国产精品| 国产日韩成人精品| 蜜臀久久99精品久久久画质超高清 | 国产视频911| 图片区小说区国产精品视频| 国产suv精品一区二区三区| 欧美另类久久久品| 一区二区三区色|