歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> HTML5 Canvas 畫圖

HTML5 Canvas 畫圖

日期:2017/3/1 10:23:15   编辑:Linux編程

按照官方例子畫了幾個基本圖形,算是對於HTML5 Canvas有所了解,但是感覺這裡面數學知識太忘記了,雖然以前數學競賽出身,但是好多年不用了,有所遺忘。

HTML5的canvas元素只是提供了一個畫布,而實際的繪制工作由javascript來完成。

基本HTML不說了, 也就是搭一個架子,放一個<canvas>元素,然後首部引入一些javascript文件,這裡面每一個js文件都是一個畫圖的例子.

  1. <!DOCTYPE html>
  2. <head>
  3. <meta charset="UTF-8">
  4. <title>HTML5 Canvas DEMO</title>
  5. <script type="text/javascript" src="js/drawRect.js"></script>
  6. <script type="text/javascript" src="js/drawPath.js"></script>
  7. <script type="text/javascript" src="js/drawLine.js"></script>
  8. <script type="text/javascript" src="js/drawLinearGradient.js"></script>
  9. <script type="text/javascript" src="js/drawTransformShape.js"></script>
  10. <script type="text/javascript" src="js/drawAll.js"></script>
  11. </head>
  12. <body onload="drawAll('canvas')"></body>
  13. <h2>canvas:放開你的夢想</h2>
  14. <canvas id="canvas" width="400" height="300"/>
  15. <br><br>

例子1:繪制矩形

  1. /**
  2. * This file is confidential by Charles.Wang
  3. * Copyright belongs to Charles.wang
  4. * You can make contact with Charles.Wang ([email protected])
  5. */
  6. //這段js代碼用於畫一個長方形
  7. //參數是傳進來的畫布canvas的id,表明這段代碼畫在哪裡
  8. function drawRect(id){
  9. //取得canvas對象,也就是我們js代碼要畫的canvas對象
  10. var canvas=document.getElementById('canvas');
  11. if (canvas==null)
  12. return false;
  13. //從canvas取得圖形上下文,這個圖形上下文context封裝了許多繪畫方法,這是一個內置的html5對象
  14. var context=canvas.getContext('2d');
  15. //設定好當前圖形上下文的樣式,夜就是當前使用顏色來繪制圖形,此外還有一些其他的樣式
  16. context.fill;
  17. //fillXXX用來填充圖形的內部,這裡fillRect,表明用當前顏色填充圖形內部,4個參數分別為起點橫坐標/起點縱坐標/寬度/高度
  18. context.fillRect(0,0,400,300);
  19. //顏色值既可以用十六進制命名,也可以使用顏色名
  20. context.fill;
  21. context.stroke;
  22. //用於設置圖形邊框的寬度
  23. context.lineWidth=1;
  24. context.fillRect(50,50,100,100);
  25. //strokeXXX用來描述圖形的邊框(stroke),這裡strokeRect,表明用來繪制剛才矩形的邊框
  26. context.strokeRect(50,50,100,100);
  27. }

畫出來的結果是:

650) this.width=650;" border=0>

例子2:用Path來繪制一組圓形:

  1. /**
  2. * This file is confidential by Charles.Wang
  3. * Copyright belongs to Charles.wang
  4. * You can make contact with Charles.Wang ([email protected])
  5. */
  6. function drawPath(id){
  7. var canvas=document.getElementById(id);
  8. if(canvas == null)
  9. return false;
  10. //依舊先拿到canvas對象和上下文對象
  11. var context = canvas.getContext("2d");
  12. //先繪制畫布的底圖
  13. context.fill;
  14. context.fillRect(0,0,400,300);
  15. //用循環繪制10個圓形
  16. var n = 0;
  17. for(var i=0 ;i<10;i++){
  18. //開始創建路徑,因為要畫圓,圓本質上也是一個路徑,這裡向canvas說明,我要開始畫了,這是起點
  19. context.beginPath();
  20. //畫一個拱形(arcade),因為圓是一種特殊的拱形
  21. //6個參數分別是 起點橫坐標,起點縱坐標,圓的半徑,起始弧度,結束弧度(2PI剛好是360度),是否順時針
  22. context.arc(i*25,i*25,i*10,0,Math.PI*2,true);
  23. //關閉路徑
  24. context.closePath();
  25. context.fill;
  26. //填充剛才所畫的圓形
  27. context.fill();
  28. }
  29. }

畫出來的結果是:

650) this.width=650;" border=0>

Copyright © Linux教程網 All Rights Reserved