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

    9000px;">

      wwwav网站| 国产chinasex对白videos麻豆| 亚洲理论中文字幕| 国产一区二区三区四区视频| 天堂在线免费观看视频| www.日本高清| 天天久久综合网| 国产精品特级毛片一区二区三区| 天堂av一区二区三区| 国产免费a级片| 中文字幕av免费观看| 久久精品日韩无码| 91日韩中文字幕| 特黄视频免费看| 国产日韩欧美在线观看视频| 中文字幕在线观看你懂的| 久久久久久久久久一区二区| 999在线精品视频| 日韩乱码人妻无码中文字幕久久 | 亚洲精品一区二区二区| 亚洲三级视频网站| 国产尤物在线视频| 嫩草影院一区二区三区| 色婷婷激情五月| 福利视频999| 一级欧美一级日韩片| 日韩精品无码一区二区三区久久久| 国产小视频在线看| 婷婷色一区二区三区| 国精品人伦一区二区三区蜜桃 | а√中文在线资源库| 狠狠躁日日躁夜夜躁av| 伊人色在线观看| 久久黄色精品视频| 69亚洲乱人伦| 视频免费1区二区三区| 国产一级淫片久久久片a级| 午夜视频在线观看国产| 久久久久亚洲av成人无码电影 | 久久久久亚洲AV成人无在| 在线免费看av网站| 人妻va精品va欧美va| 免费日韩一级片| 久久视频一区二区三区| 亚洲无码久久久久久久| 97人妻精品一区二区三区动漫| 最新免费av网址| 成人免费a视频| 国产sm在线观看| 国产美女喷水视频| 看片网址国产福利av中文字幕| 国产又粗又长又大的视频| 久久久www成人免费毛片| 亚洲一二三四五| 中文字幕在线播放日韩| 91女人18毛片水多国产| 日本xxxx黄色| 天堂中文资源在线观看| 999久久久久久| 亚洲欧美在线视频免费| 婷婷在线免费视频| 色婷婷视频在线| 日韩va亚洲va欧美va清高| 免费一级肉体全黄毛片| 精品乱子伦一区二区| 黄色永久免费网站| 91麻豆成人精品国产免费网站| 国产一区二区三区视频免费观看 | 国产伦精品一区二区三区视频痴汉| 亚洲第一色av| 国产成人黄色网址| 手机在线观看毛片| 动漫精品一区一码二码三码四码| 69av视频在线观看| 91精品国产乱码在线观看| 91传媒免费观看| 99久久人妻无码中文字幕系列 | 黄色av网址在线| 国产一级特黄a大片免费| 国产区一区二区三| 激情五月少妇a| 免费人成年激情视频在线观看| 免费一级特黄3大片视频| 欧美午夜精品理论片| 日韩精品1区2区| 午夜精品久久久久久久99| 亚洲av午夜精品一区二区三区| 亚洲国产日韩欧美在线观看| 亚洲在线精品视频| 国产精品2020| 玖玖爱这里只有精品| 色婷婷久久综合中文久久蜜桃av| 五月婷婷久久久| 亚洲一区二区自偷自拍 | 国产精品国产三级国产aⅴ | 亚洲AV无码一区二区三区性| 亚洲精品视频91| 成年人网站在线观看视频| 国产午夜精品久久久久久久久| 久久国产一级片| 天天爽夜夜爽一区二区三区| 中文字幕亚洲欧美日韩| www.这里只有精品| 九九在线观看视频| 天堂在线一区二区三区| 亚洲日本久久久| 国产免费一区二区三区四区五区| 免费黄色网址在线| 亚洲GV成人无码久久精品| 99精品全国免费观看| 黑人巨大精品一区二区在线| 日韩一级免费毛片| 91国内在线播放| 九九九九九伊人| 亚洲 欧美 中文字幕| 成人在线观看一区二区| 久久中文字幕在线观看| 在线成人精品视频| 国产成人免费看| 日本视频免费在线| 亚洲自拍一区在线观看| 黄色大片网站在线观看| 香蕉久久国产av一区二区| 超碰成人在线播放| 人妻激情偷乱频一区二区三区| 亚洲色图欧美另类| 久久久久在线视频| 亚洲精品国产精品国自| 精品无码黑人又粗又大又长| 在线免费黄色小视频| 精品伦一区二区三区 | 亚洲精品一区二区三区蜜桃| 国产一级片av| 在线免费观看亚洲视频| 国产又粗又猛又爽又黄的视频一| 天天干天天干天天操| 国产精品九九九九| 天天插天天操天天射| 国产欧美久久久| 亚洲 激情 在线| 精品人妻一区二区三区四区不卡 | 人妻互换一区二区激情偷拍| 亚洲一区二区在线免费| 欧美黄色一级生活片| 91影院在线播放| 色婷婷av一区二区三区之红樱桃| 不卡的在线视频| 亚洲 欧美 中文字幕| 黄色片视频在线| 亚洲特级黄色片| 日韩久久久久久久久久久| 国产福利影院在线观看| 亚洲xxx在线观看| 精品日韩在线视频| 91在线公开视频| 午夜精品久久久久久久99热影院| 韩国一区二区在线播放| 一级片视频免费| 午夜视频在线观看国产| 久久久无码人妻精品无码| www.涩涩涩| 中文字幕 亚洲视频| 蜜桃无码一区二区三区| 99热这里只有精品在线观看| 性做久久久久久久久久| 久久午夜福利电影| 国产激情在线免费观看| 综合五月激情网| 手机看片一区二区三区| 乱码一区二区三区| 国产伦精品一区二区三区妓女下载 | 天天操天天爱天天爽| 精品无码黑人又粗又大又长| 国产999免费视频| 亚洲欧美激情国产综合久久久| 日韩av一卡二卡三卡| 久久久久久久久久久久久久久国产| 成年人在线免费看片| 亚洲欧美日韩免费| 午夜精品福利在线视频 | 91porny九色| 中文字幕 人妻熟女| 熟女人妻在线视频| 欧美视频xxx| 久久久久亚洲AV成人网人人小说 | 无码人妻精品一区二区三| 麻豆精品国产免费| 韩国av在线免费观看| 国产精品视频在| 波多野结衣三级视频| 91 在线视频| 亚洲天堂avav| 中文字幕永久在线| 正在播放亚洲精品| 一区两区小视频| 伊人精品在线视频| 在线免费观看av网| 伊人网伊人影院| 中文字幕+乱码+中文乱码91| 亚洲AV成人精品|