首頁 > web前端 > H5教程 > 主體

一波HTML5 Canvas基礎繪圖實例程式碼集合_html5教學技巧

WBOY
發布: 2016-05-16 15:45:46
原創
1628 人瀏覽過

基本繪製

XML/HTML Code複製內容到剪貼簿
  1. var canvas = document.getElementBy>document
  2. .getElementBy; >
  3. if (canvas.getContext) {   
  4.     var context = canvas.Congetn('2d');
  5.     // 線寬   
  6.     context.lineWidth = 4; 🎜>
  7.     // 畫筆顏色   
  8.     
  9. context.strokeStyle = 'red';     // 填充色   
  10.     
  11. context.fillStyle
  12.  = "red";     // 帽型   
  13.     
  14. context.lineCap
  15.  = 
  16. 'butt';     // 開始路徑        context.beginPath();   
  17.     // 起點   
  18.     context.moveTo(10,10);   
  19.     // 終點   
  20.     context.lineTo(150,50);   
  21.     // 繪製   
  22.     context.stroke();   
  23. }  
  24.     
  25. 長方形

XML/HTML Code
複製內容到剪貼簿

var canvas
 = 
  1. document.getElementBy>document.getElementBy; > if (canvas.getContext) {        context.beginPath();   
  2.     context.strokeRect(10,10,70,40);   
  3.     // 矩形的另一種方式   
  4.     context.rect(10,10.70,40);   
  5.     context.stroke();   
  6.         
  7.     // 實心長方形   
  8.     context.beginPath();   
  9.     context.fillRect(10,10,70,40);   
  10.     // 另一種方式實心長方形   
  11.     context.beginPath();   
  12.     context.rect(10,10,70,40);   
  13.     context.fill();   
  14. }  
  15.       圓形

XML/HTML Code
複製內容到剪貼簿

  1. var canvas = document.getElementBy>document
  2. .getElementBy; >
  3. if (canvas.getContext) {   
  4.     context.beginPath();   
  5.     // 圓中心座標x, 圓中心座標Y, 圓弧半徑, 起始角度,終止角度,是否逆時針   
  6.     // 第4個參數和第五個參數是要傳入的弧度,如果畫30角度,需要將其轉化為弧度 30 * Math.PI / 180   
  7.     context.arc(100,100,70,0,130 * Math.PI / 180, true);   
  8.     context.stroke();   
  9.     context.fill();   
  10. }  


     圓角

XML/HTML Code複製內容到剪貼簿
  1. var canvas = document.getElementBy>document
  2. .getElementBy; >
  3. if (canvas.getContext) {   
  4.     context.beginPath();   
  5.     context.moveTo(20,20);   
  6.     context.lineTo(70,20);   
  7.        // 為路徑畫弧度p1.x p1.y p2.x, p2.y 弧半徑,    
  8.     context.arcTo(120,30,120,70, 50);   
  9.     context.lineTo(120,120);   
  10.     context.stroke();   
  11.         
  12.     // 擦除canvas 畫板   
  13.     context.beginPath();   
  14.     context.fillRect(10,10,200,100);   
  15.         
  16.     // 擦除區域   
  17.     context.clearRect(30,30,50,50);   
  18. }  

二次貝塞爾曲線
XML/HTML Code
複製內容到剪貼簿
  1. var canvas = document.getElementBy>
  2. document
  3. .getElementBy; >
  4. if (canvas.getContext) {   
  5.       context.beginPath();   
  6.       context.moveTo(100,100);   
  7.       context.quadraticCurveTo(20,50,200,20);   
  8.       context.stroke();   
}  


    
三次貝塞爾曲線
XML/HTML Code
複製內容到剪貼簿
  1. var 勞動 = 文件.getElementById('canvas');   
  2. if (canvas.getContext) {   
  3.      context.moveTo(68,130);   
  4.      var cX1 = 20;   
  5.      var cY1 = 10;   
  6.      var cX2 = 268;   
  7.      var cY2 = 10;   
  8.      var endX = 268;   
  9.      var endY = 170;   
  10.      context.bezierCurveTo(cX1, cY1, cX2, cY2, endX, endY);   
  11.      context.lines();   
  12.         
  13.     // 利用剪輯指定繪圖區域,之後指定繪圖區域,只能在繪圖區域中進行繪圖擦歐總   
  14.     // 均勻圓   
  15.     context.arc(100,100,40,0, 360 * Math.PI/ 180 , true);   
  16.     // 限制區   
  17.     context.clip();   
  18.     //開始嘗試其他光源   
  19.     context.beginPath();   
  20.     context.fillStyle = 'lightblue';   
  21.     //結果統計並未顯示   
  22.     context.fillRect(0,0,300,150);   
  23. }  

畫板進階使用

XML/HTML 程式碼將內容複製到剪貼簿
  1. var canvas = document.getElementBy>document
  2. .getElementBy; >
  3. if (canvas.getContext) {   
  4.     var context = canvas.Congetn('2d');
  5.     /*   
  6.      * drawImage(image,dx,dy)   
  7.      * drawImage(image,dx,dy,dw,dh)   
  8.      * drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh);   
  9.      * image 繪圖物件   
  10.      * dx dy canvas 的座標   
  11.      * dw,dh 表示 image 即將在canvas中繪圖的位置   
  12.      * sw,sh 表示image 所要繪圖的區域   
  13.      * sx,sy 所要繪圖的起始位置    
  14.      */   
  15.     var image = document    context.drawImage(image, 0, 0);   
  16.      var img
  17.  = new         
  18. img.src
  19.  = 'images/1.jpg''images/1.jpg';      
  20. img.onload = functionfunction
  21.              
  22.          // drawImage    
  23.          // 從 0,0 座標開始繪製   
  24.          // context.drawImage(img,0,0);   
  25.          // 從0,且0 開始,繪製完整圖至100,100 長寬   
  26.          // context.drawImage(img, 0, 0, 100, 100);  
  27.          // 截圖,50,50 到 100,100 從 260,130 開始繪製,並放置至 100,100 260,130 開始繪製,並放置至 100,100 260,130 
  28.          // context.drawImage(img, 50, 50, 100,100, 260, 130, 100,             
  29.          // 利用getImageData 與 putImageData 繪圖   
  30.   
  31.          context.drawImage(img, 10, 10);   
  32.          // 從畫板上取得像素資料   
  33.          // 起始位置, 結束位置   
  34.          var 
  35. imgData = context
  36.          // 將資料繪製至畫板指定位置座標   
  37.          context.putImageData(imgData,10,260);   
  38.          // 將所去的像素資料一部分,並畫到畫板上   
  39.          context.putImageData(imgData,200,260,50,50,100,100);      
  40.              
  41.          // createImageData 建立像素   
  42.           var imgData = context = context
  43.  = 
  44. context
  45.           // 以建立指定大小的空格物件              var imgData01 = context
  46.  = 
  47. context
  48.               
  49.           for (i =  = imgData01.width
  50.  * imgData01.height * 4; i =4) {   
  51.               // 紅色像素   
  52.               imgData01.data[i   0] = 255;   
  53.               imgData01.data[i 1] = 0;   
  54.               imgData01.data[i 2] = 0;   
  55.               imgData01.data[i 3] = 255;   
  56.                   
  57.           }   
  58.           context.putImageData(imgData01, 10, 260);   
  59.      }   
  60. }  
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板