久久精品国产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国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

    国产一区二区三区免费不卡| 亚洲影院色在线观看免费| 久久婷婷国产综合尤物精品| 日韩一级片网址| 国产主播喷水一区二区| 欧美视频二区| 欧美黄色免费网站| 久久精品日产第一区二区| 一本久久综合亚洲鲁鲁五月天| 国产日韩专区| 国产精品午夜在线| 欧美性理论片在线观看片免费| 久久亚洲捆绑美女| 久久久国产成人精品| 亚洲无毛电影| 亚洲午夜国产成人av电影男同| 在线精品视频一区二区| 国语自产在线不卡| 国产精品亚洲人在线观看| 欧美婷婷久久| 欧美色123| 欧美视频在线观看 亚洲欧| 欧美成人在线免费观看| 欧美v国产在线一区二区三区| 久久精品国产清自在天天线| 久久成人精品一区二区三区| 亚洲欧美三级伦理| 亚洲男人的天堂在线| 一区二区免费看| 在线视频一区二区| 亚洲视频精选在线| 亚洲主播在线| 亚洲女ⅴideoshd黑人| 亚洲欧美日韩精品| 性欧美精品高清| 久久国产精品亚洲77777| 欧美伊久线香蕉线新在线| 午夜精品成人在线视频| 久久久久久欧美| 欧美成人按摩| 欧美三区在线| 国产尤物精品| 亚洲精品视频一区二区三区| 亚洲图片在线观看| 久久99在线观看| 欧美成人黄色小视频| 欧美日韩性视频在线| 欧美性猛交xxxx乱大交蜜桃| 国产欧美亚洲一区| 亚洲国产精品成人久久综合一区 | 国色天香一区二区| 亚洲国产mv| 亚洲少妇自拍| 欧美综合77777色婷婷| 欧美高清视频一区二区三区在线观看| 欧美激情在线| 国产午夜一区二区三区| 亚洲人成久久| 欧美在线视频一区二区三区| 女人色偷偷aa久久天堂| 国产精品美女久久久久久久| 一区二区三区在线不卡| 亚洲免费大片| 久久综合久久综合久久| 国产精品第一区| 亚洲欧洲日韩在线| 欧美一区二区国产| 欧美成人一区二区三区在线观看| 欧美激情四色| 狠狠久久五月精品中文字幕| 亚洲美女福利视频网站| 久久久福利视频| 国产精品精品视频| 一本大道久久a久久综合婷婷| 久久偷看各类wc女厕嘘嘘偷窃| 国产精品久久久久久久电影| 亚洲欧洲日产国产网站| 久久综合九色综合久99| 国产日本欧美视频| 亚洲在线视频一区| 蜜臀va亚洲va欧美va天堂 | 国产精品99久久不卡二区| 久久综合久色欧美综合狠狠 | 国产亚洲精品久久久| 99国产精品国产精品久久| 美女黄毛**国产精品啪啪| 国产一区二区精品丝袜| 羞羞答答国产精品www一本| 国产精品成人观看视频免费| 亚洲人成在线观看网站高清| 麻豆精品传媒视频| 亚洲成色最大综合在线| 久久在线免费观看| 激情亚洲网站| 欧美xxx成人| 亚洲欧洲一区二区在线观看| 蜜臀va亚洲va欧美va天堂| 亚洲国产综合视频在线观看| 久久婷婷丁香| 最新日韩av| 欧美日韩视频免费播放| 日韩午夜中文字幕| 国产精品mm| 亚洲欧美视频在线观看| 国产伦精品一区二区三区视频黑人 | 一区二区免费在线观看| 欧美视频精品在线| 亚洲欧美日韩精品久久久| 国产精品视频99| 久久精品视频在线看| 在线观看欧美激情| 欧美精品高清视频| 在线一区日本视频| 国产亚洲精品自拍| 欧美+日本+国产+在线a∨观看| 亚洲毛片网站| 国产精品夜夜夜| 久久伊人亚洲| 日韩网站免费观看| 国产日韩欧美三区| 欧美成人免费网站| 亚洲欧美视频在线观看| 136国产福利精品导航网址应用| 欧美激情精品久久久久久变态| 亚洲一级免费视频| 在线观看日韩av先锋影音电影院| 欧美激情片在线观看| 欧美一级专区免费大片| 亚洲精品视频在线看| 国产精品久久久久aaaa樱花| 久久影视精品| 亚洲免费在线视频| 亚洲欧洲在线观看| 国产主播在线一区| 欧美视频日韩| 欧美黄污视频| 久久久免费观看视频| 一区二区三区欧美激情| 国产日韩在线亚洲字幕中文| 欧美精品导航| 麻豆精品视频| 欧美在线视频日韩| 亚洲天堂免费观看| 最近中文字幕日韩精品 | 国产日韩综合| 欧美日韩免费高清| 老**午夜毛片一区二区三区| 亚洲一区久久久| 亚洲美女诱惑| 亚洲国产精品一区二区久 | 久久精品91久久久久久再现| 亚洲五月婷婷| 一区二区av在线| 亚洲激情第一区| 韩国成人精品a∨在线观看| 欧美三区美女| 欧美天堂亚洲电影院在线观看 | 99在线热播精品免费| 怡红院精品视频| 国产一区二区三区久久精品| 国产精品香蕉在线观看| 欧美日韩国产专区| 欧美精品成人91久久久久久久| 欧美超级免费视 在线| 久久精品国产一区二区三区免费看| 亚洲影院一区| 亚洲综合首页| 亚洲欧美国产va在线影院| 亚洲午夜电影网| 亚洲免费视频在线观看| 亚洲欧美中文另类| 欧美一区二区视频观看视频| 欧美一级片在线播放| 性娇小13――14欧美| 欧美一区二区日韩一区二区| 小处雏高清一区二区三区| 香蕉成人伊视频在线观看| 香蕉亚洲视频| 久久综合九九| 欧美精品18| 国产精品久久久久久久久久尿| 国产精品久久| 国产亚洲精品美女| 亚洲国产成人精品女人久久久 | 国产乱码精品一区二区三区五月婷| 国产精品久久网站| 国产一区欧美日韩| 亚洲国产精品成人一区二区| 91久久久久久久久| 亚洲天堂av图片| 久久精品国产999大香线蕉| 久久综合五月天婷婷伊人| 欧美激情视频免费观看| 国产精品综合| 亚洲破处大片| 亚洲欧美在线观看| 免费在线看成人av| 国产精品一区二区三区久久久| 国产在线高清精品| 日韩手机在线导航|