歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

HTML5 Canvas 畫圖

按照官方例子畫了幾個基本圖形,算是對於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.  
  13. <body onload="drawAll('canvas')"></body> 
  14. <h2>canvas:放開你的夢想</h2> 
  15. <canvas id="canvas" width="400" height="300"/> 
  16. <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.   
  7.  //這段js代碼用於畫一個長方形 
  8.  //參數是傳進來的畫布canvas的id,表明這段代碼畫在哪裡 
  9.  function drawRect(id){ 
  10.      
  11.     //取得canvas對象,也就是我們js代碼要畫的canvas對象 
  12.     var canvas=document.getElementById('canvas'); 
  13.     if (canvas==null) 
  14.         return false; 
  15.          
  16.     //從canvas取得圖形上下文,這個圖形上下文context封裝了許多繪畫方法,這是一個內置的html5對象 
  17.     var context=canvas.getContext('2d'); 
  18.     //設定好當前圖形上下文的樣式,夜就是當前使用顏色來繪制圖形,此外還有一些其他的樣式 
  19.     context.fill; 
  20.     //fillXXX用來填充圖形的內部,這裡fillRect,表明用當前顏色填充圖形內部,4個參數分別為起點橫坐標/起點縱坐標/寬度/高度 
  21.     context.fillRect(0,0,400,300); 
  22.     //顏色值既可以用十六進制命名,也可以使用顏色名 
  23.     context.fill; 
  24.     context.stroke; 
  25.     //用於設置圖形邊框的寬度 
  26.     context.lineWidth=1; 
  27.     context.fillRect(50,50,100,100); 
  28.     //strokeXXX用來描述圖形的邊框(stroke),這裡strokeRect,表明用來繪制剛才矩形的邊框 
  29.     context.strokeRect(50,50,100,100); 
  30.  } 

畫出來的結果是:

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

 畫出來的結果是:

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

Copyright © Linux教程網 All Rights Reserved