canvas教程

HTML5 Canvas標簽定義圖形

字号+ 作者:H5之家 来源:H5之家 2016-12-31 11:04 我要评论( )

HTML5 Canvas標簽定義圖形

  <canvas> 標簽定義圖形,比如圖表和其他圖像,您必須使用腳本來繪制圖形。

  在畫布上(Canvas)畫一個紅色矩形,漸變矩形,彩色矩形,和一些彩色的文字。

  什么是 Canvas?

  HTML5 <canvas> 元素用于圖形的繪制,通過腳本 (通常是Java)來完成.

  <canvas> 標簽只是圖形容器,您必須使用腳本來繪制圖形。

  你可以通過多種方法使用Canva繪制路徑,盒、圓、字符以及添加圖像。

  瀏覽器支持

  表格中的數字表示支持 <canvas> 元素的第一個瀏覽器版本號。

元素

<canvas> 4.0 9.0 2.0 3.1 9.0

創建一個畫布(Canvas)

  一個畫布在網頁中是一個矩形框,通過 <canvas> 元素來繪制.

  注意:默認情況下 <canvas> 元素沒有邊框和內容。

  <canvas>簡單實例如下:

  <canvas id="myCanvas" width="200" height="100"></canvas>

  注意:標簽通常需要指定一個id內容 (腳本中經常引用), width 和 height 內容定義的畫布的大小.

  提示:你可以在HTML頁面中使用多個 <canvas> 元素.

  使用 style 內容來添加邊框:

  實例

  <canvas id="myCanvas" width="200" height="100"

  style="border:1px solid #000000;">

  </canvas>

  嘗試一下 »

  使用 Java 來繪制圖像

  canvas 元素本身是沒有繪圖能力的。所有的繪制工作必須在 Java 內部完成:

  實例

  實例解析:

  首先,找到 <canvas> 元素:

  var c=document.getElementById("myCanvas");

  然后,創建 context 對象:

  var ctx=c.getContext("2d");

  getContext("2d") 對象是內建的 HTML5 對象,擁有多種繪制路徑、矩形、圓形、字符以及添加圖像的方法。

  下面的兩行代碼繪制一個紅色的矩形:

  ctx.fillStyle="#FF0000";

  ctx.fillRect(0,0,150,75);

  設置fillStyle內容可以是CSS顏色,漸變,或圖案。fillStyle 默認設置是#000000(黑色)。

  fillRect(x,y,width,height) 方法定義了矩形當前的填充方式。

  Canvas 坐標

  canvas 是一個二維網格。

  canvas 的左上角坐標為 (0,0)

  上面的 fillRect 方法擁有參數 (0,0,150,75)。

  意思是:在畫布上繪制 150x75 的矩形,從左上角開始 (0,0)。

  坐標實例

  如下圖所示,畫布的 X 和 Y 坐標用于在畫布上對繪畫進行定位。滑鼠移動的矩形框上,顯示定位坐標。

  X

  Y

  Canvas - 路徑

  在Canvas上畫線,我們將使用以下兩種方法:

  使用 fillText():

  實例

  使用 "Arial" 字體在畫布上繪制一個高 30px 的文字(實心):

  Java:

  var c=document.getElementById("myCanvas");

  var ctx=c.getContext("2d");

  ctx.font="30px Arial";

  ctx.fillText("Hello World",10,50);

  使用 strokeText():

  實例

  使用 "Arial" 字體在畫布上繪制一個高 30px 的文字(空心):

  Java:

  var c=document.getElementById("myCanvas");

  var ctx=c.getContext("2d");

  ctx.font="30px Arial";

  ctx.strokeText("Hello World",10,50);

  Canvas - 漸變

  漸變可以填充在矩形, 圓形, 線條, 文本等等, 各種形狀可以自己定義不同的顏色。

  以下有兩種不同的方式來設置Canvas漸變:

  • createLinearGradient(x,y,x1,y1) - 創建線條漸變

  • createRadialGradient(x,y,r,x1,y1,r1) - 創建一個徑向/圓漸變

  •   當我們使用漸變對象,必須使用兩種或兩種以上的停止顏色。

      addColorStop()方法指定顏色停止,參數使用坐標來描述,可以是0至1.

      使用漸變,設置fillStyle或strokeStyle的值為 漸變,然后繪制形狀,如矩形,文本,或一條線。

      使用 createLinearGradient():

      實例

      創建一個線性漸變。使用漸變填充矩形:

      Java:

      var c=document.getElementById("myCanvas");

      var ctx=c.getContext("2d");

      // Create gradient

      var grd=ctx.createLinearGradient(0,0,200,0);

      grd.addColorStop(0,"red");

      grd.addColorStop(1,"white");

      // Fill with gradient

      ctx.fillStyle=grd;

      ctx.fillRect(10,10,150,80);

      使用 createRadialGradient():

      實例

      創建一個徑向/圓漸變。使用漸變填充矩形:

      Java:

      var c=document.getElementById("myCanvas");

      var ctx=c.getContext("2d");

      // Create gradient

      var grd=ctx.createRadialGradient(75,50,5,90,60,100);

      grd.addColorStop(0,"red");

      grd.addColorStop(1,"white");

      // Fill with gradient

      ctx.fillStyle=grd;

      ctx.fillRect(10,10,150,80);

      Canvas - 圖像

      把一幅圖像放置到畫布上, 使用以下方法:

  • drawImage(image,x,y)

  • 使用圖像:

      實例

      把一幅圖像放置到畫布上:

      Java:

      var c=document.getElementById("myCanvas");

      var ctx=c.getContext("2d");

      var img=document.getElementById("scream");

      ctx.drawImage(img,10,10);

      HTML Canvas 參考手冊

      標簽的完整內容可以參考Canvas 參考手冊.

      HTML <canvas> 標簽

    Tag 描述

    <canvas> HTML5 的 canvas 元素使用 Java 在網頁上繪制圖像。

      如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • 数据可视化的实现技术和工具比较(HTML5 canvas(Echart)、SVG、webGL等等)

      数据可视化的实现技术和工具比较(HTML5 canvas(Echart)、SVG、webGL

      2016-12-30 16:00

    • HTML5超逼真下雪场景效果

      HTML5超逼真下雪场景效果

      2016-12-30 10:00

    • HTML5 Canvas实现烟花绽放特效

      HTML5 Canvas实现烟花绽放特效

      2016-12-29 08:18

    • Pro HTML5 Programming(Second Edition)2.Canvas API(二)

      Pro HTML5 Programming(Second Edition)2.Canvas API(二)

      2016-12-28 18:01

    网友点评