国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > HTML > 正文

html5的canvas元素使用方法介紹(畫矩形、畫折線、圓形)

2020-03-24 16:30:12
字體:
來源:轉載
供稿:網友
Canvas一般是指畫布,最近對用html5寫游戲比較感興趣,所以簡單的用了一下Canvas。之前接觸Canvas是在silverlight和wpf上用到過他,在silverlight上Canvas是一個絕對定位的容器,里面可以放任何控件。我們通過他可以構建畫布、圖形應用、GIS應用等。在html5中,canvas是一個新增的標簽:

復制代碼代碼如下:
canvas /canvas

他有基本的html標簽的所有屬性,一樣可以給他設置style。
復制代碼代碼如下:
canvas /canvas
style
canvas{width:400px;height:400px;background:#000;}
/style
canvas /canvas
他還有一個特定的attribute:

復制代碼代碼如下:
canvas height="300" width="400" /canvas

這里的height、width與以往的html標簽的attribute不同,也與style中的height、width不同,這里主要是指canvas中的坐標范圍。而style里的width、height是指canvas實際展示的大小。比如定義下面的一個canvas:

復制代碼代碼如下:
canvas width="400" height="300" /canvas

然后在canvas中畫一個坐標為 100、50,大小為200、150的矩形,你會看到實際的效果如下圖:

圖中 canvas的大小是通過style決定的 600px * 450px,但是填滿整個canvas的坐標只是400*300, 對應著括號里的大小。在canvas中畫圖是基于坐標的,所以100, 50的坐標轉化成了150px,75px的屏幕坐標,矩形的大小也由200*150轉換成300px*225px的屏幕大小。你可以按照下面的代碼自己試一試:
復制代碼代碼如下:
!doctype html
html /p p body
canvas width="400" height="300" /canvas
script
var context =document.getElementsByTagName("canvas")[0].getContext("2d");
context.fillRect(100,50,200,150);
/script
/body
/html


canvas的還有些其他attribute,還沒有去看,他還有一個主要的方法,就是getContext(),這個方法就是獲取畫圖的對象。通過canvas的dom對象,可以調用getContext( 2d )的方法獲取對應的畫圖對象:var canvas = document.getElementsByTagName( canvas )[0];
var context = canvas.getContext( 2d
在開發者控制臺里可以看到這個drawing2d的屬性及方法:

包含了fillStyle、stokeStyle、lineCap、font等畫筆樣式類的屬性,fillRect、strokeRect、beginPath、moveTo、lineTo、closePath、stroke、fill、drawImage等畫圖動作的方法,還有一些其他的一些transfrom、save等方法。簡單說一下我看了的幾個屬性和方法,其他的需要自己去摸索哦:fillStyle:填充樣式,可以是顏色值的html碼 如紅色:#ff0000,其他是不是支持css3的更多屬性就不知道了strokeStyle:線條樣式font:字體樣式fillRect:function(x,y,width,height),直接按fillStyle填滿一個矩形strokeRect:function(x,y,width,height),直接按strokeStyle描一個矩形邊beginPath:開始畫線,配合moveTo/lineTo/closePath等畫折線或多邊形moveTo:function(x,y)將畫線起點移動到新的坐標lineTo:function(x,y)從當前點畫的目標點closePath:從當前點連接到起點stroke:按照上面的路徑按strokeStyle畫折線fill:按上面的路徑按fillStyle畫矩形drawImage: function(image,x,y,width,height)將Image對象添加的畫布上。注意這里的image對象必須是已經加載完畢的。如 var img = new Image();img.src= test.png img.onload = function(){/*在這里才能將image添加到畫布*/}可以看下上面畫矩形的方法:

復制代碼代碼如下:
context.fillRect(100,50,200,150);
畫一條折線:

復制代碼代碼如下:
context.beginPath();
context.moveTo(10,10);
context.lineTo(10,110);
context.lineTo(110,110);
context.lineTo(110,10);
context.closePath();
context.stroke();
canvas具有繪圖的功能,但是在用戶交互上似乎比較乏力。拿silverlight的canvas、.NET的Bitmap、html的div與canvas對比了一下:

個人感覺canvas和Bitmap更像,是一個將Bitmap放到瀏覽器端的一個版本,當然我們可以通過他來實現更多的功能。canvas本身能實現的還是比較少,但是配合現有的其他瀏覽器端應用的技術肯定能創造出更多好的應用。html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 离岛区| 岳西县| 赤峰市| 伊宁县| 唐海县| 台南县| 长沙市| 高台县| 钦州市| 瑞丽市| 永济市| 怀宁县| 威宁| 囊谦县| 措美县| 错那县| 沂南县| 新余市| 九江市| 松原市| 城固县| 三台县| 鄂托克前旗| 威信县| 德江县| 巴林右旗| 达孜县| 体育| 周宁县| 鄱阳县| 湘潭市| 台山市| 酒泉市| 闵行区| 永泰县| 启东市| 阿克苏市| 元朗区| 苍南县| 榆林市| 九江县|