久久精品国产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;">

      久久er99精品| 成人丝袜18视频在线观看| 亚洲精品国产视频| 欧美精彩视频一区二区三区| 五月综合激情网| 成人av在线资源网站| 在线这里只有精品| 欧美一区二区三区精品| 欧美一区二区免费视频| av影院午夜一区| 久久国产婷婷国产香蕉| 亚洲第一成人在线| 国产精品福利一区| 国产91对白在线观看九色| 亚洲成人综合网站| 欧美日韩中文另类| 日本韩国欧美在线| 91亚洲精品乱码久久久久久蜜桃| 粉嫩aⅴ一区二区三区四区| 夜夜嗨av一区二区三区中文字幕 | 国产福利一区在线观看| 日韩黄色片在线观看| 亚洲在线观看免费视频| 亚欧色一区w666天堂| 亚洲欧美激情在线| 首页国产欧美日韩丝袜| 午夜久久福利影院| 国产成人8x视频一区二区| 国产一区视频网站| 色视频欧美一区二区三区| 成人中文字幕电影| 欧美三级韩国三级日本一级| 在线观看日韩电影| 欧美一级免费观看| 日韩欧美成人午夜| 一区在线播放视频| 亚洲天堂久久久久久久| 日本韩国精品一区二区在线观看| 色欧美88888久久久久久影院| 99视频有精品| 91精品在线免费| 久久中文字幕电影| 亚洲高清免费观看高清完整版在线观看| 亚洲色图欧美激情| 精品一区二区三区在线观看国产 | 91麻豆国产福利精品| 波多野结衣一区二区三区| 一区二区三区欧美日| 国产精品亚洲人在线观看| 成人高清免费在线播放| 欧美一级免费大片| 国产精品视频第一区| 五月激情综合色| 国产一区在线精品| 91看片淫黄大片一级在线观看| 欧美在线你懂的| 精品国产一区二区三区忘忧草| 中文字幕高清不卡| 免费久久99精品国产| 亚洲国产毛片aaaaa无费看| 日韩福利电影在线| 免费成人小视频| 国产情人综合久久777777| ㊣最新国产の精品bt伙计久久| 国产剧情av麻豆香蕉精品| 欧美日韩精品一区二区天天拍小说 | 91精品国产色综合久久| 欧美不卡123| 精品久久久久久久久久久久久久久久久| 久久av资源网| 99国内精品久久| 成人国产精品免费观看| bt7086福利一区国产| 美女视频黄免费的久久 | 国产精品一区二区果冻传媒| 一区二区三区鲁丝不卡| 色综合久久久久网| 精品捆绑美女sm三区| 樱桃国产成人精品视频| 麻豆久久一区二区| 欧美精品久久久久久久多人混战| 日韩综合小视频| 国产综合色视频| 欧美精品免费视频| 精品一区二区三区在线观看| 欧美电影免费观看高清完整版在| 日本视频免费一区| 日韩欧美一区电影| 免费亚洲电影在线| 久久综合av免费| 成人18视频日本| 亚洲欧美日韩电影| 欧美一区二区三区四区高清| 久久国内精品自在自线400部| 日韩免费在线观看| 91视视频在线直接观看在线看网页在线看| 国产欧美一区二区三区在线老狼| 国产在线播放一区| 日韩精品国产欧美| 国产精品资源在线看| 在线观看国产91| 日韩专区在线视频| 午夜激情一区二区三区| 国产91清纯白嫩初高中在线观看 | 免费成人在线网站| 成人黄色小视频| 久久婷婷国产综合国色天香| 久久国产夜色精品鲁鲁99| 欧美变态凌虐bdsm| 欧美性色欧美a在线播放| 国产一区二区久久| 另类小说综合欧美亚洲| 亚洲人妖av一区二区| 日本不卡123| 亚洲国产成人av网| 26uuu精品一区二区在线观看| 中文字幕亚洲一区二区va在线| 国产乱码精品一区二区三区五月婷 | 在线观看91av| 亚洲福中文字幕伊人影院| 国产精品免费视频网站| 天天综合色天天综合| 91精品国产欧美一区二区18 | 亚洲在线免费播放| 欧美在线三级电影| 美女mm1313爽爽久久久蜜臀| 国产精品69久久久久水密桃| 日韩免费观看高清完整版在线观看| 日本中文字幕不卡| 久久精品夜色噜噜亚洲aⅴ| 99久久伊人精品| 欧美高清在线一区| 91黄视频在线| 精品在线亚洲视频| 亚洲精品日韩综合观看成人91| 欧美日韩黄视频| 粉嫩aⅴ一区二区三区四区| 亚洲精品视频自拍| 欧美男女性生活在线直播观看| 亚洲免费资源在线播放| 99久久精品国产一区| 久久国产视频网| 欧美成人bangbros| 亚洲女爱视频在线| 懂色av噜噜一区二区三区av| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 欧美日韩免费观看一区二区三区 | 日韩免费成人网| www.在线成人| 日韩精品欧美成人高清一区二区| 2021国产精品久久精品| 91福利资源站| 色综合欧美在线| 麻豆传媒一区二区三区| 亚洲国产视频直播| 国产精品国产自产拍高清av | 亚洲国产成人私人影院tom| 色88888久久久久久影院按摩 | 亚洲va韩国va欧美va| 成人av在线一区二区三区| 精品久久国产字幕高潮| 一区二区三区在线看| 99麻豆久久久国产精品免费| 91精品一区二区三区久久久久久| 在线亚洲一区二区| 日韩美女精品在线| 99久久国产综合精品色伊| 国产午夜精品美女毛片视频| 日韩视频免费观看高清完整版| 国产福利电影一区二区三区| 日韩限制级电影在线观看| 色婷婷国产精品久久包臀| 国产精品亚洲人在线观看| 国产精品久久久久一区| 成人一区二区三区视频在线观看 | 中文字幕在线不卡一区| 日韩一级高清毛片| 日韩精品中文字幕一区二区三区 | xf在线a精品一区二区视频网站| 欧美日韩亚洲国产综合| 国产乱妇无码大片在线观看| 国产精品一区二区果冻传媒| 亚洲一区在线电影| 亚洲码国产岛国毛片在线| 国产精品久久久久aaaa樱花| 国产欧美日本一区视频| 国产性做久久久久久| 欧美国产精品中文字幕| 久久久久久99精品| 久久精品亚洲国产奇米99| 欧洲国内综合视频| 欧美一区二区三区在线看| 欧美男人的天堂一二区| 成人综合婷婷国产精品久久蜜臀| 天堂va蜜桃一区二区三区 | 国产黑丝在线一区二区三区| 蜜桃av一区二区三区电影| 激情欧美一区二区| 国产精品一二三区| 欧美在线免费观看亚洲|