首頁 web前端 H5教程 HTML5 Canvas 繪圖-使用 Canvas 繪製圖形圖文教學 使用html5 canvas 繪製精美的圖_html5教學技巧

HTML5 Canvas 繪圖-使用 Canvas 繪製圖形圖文教學 使用html5 canvas 繪製精美的圖_html5教學技巧

May 16, 2016 pm 03:46 PM

HTML5火的正熱,最近有個想法也是要用到HTML的相關功能,所以也要好好學習一把。

好好看了一下Canvas的功能,感覺HTML5在客戶端互動的功能性越來越強了,今天看了一下Canvas繪圖,下邊是幾個實例,記下以備後用。

1、使用Canvas繪製直線:


 

XML/HTML Code複製內容到剪貼簿
  1. html>  
  2. html>  
  3.     >  
  4.           字元 字元8"
  5. >       
  6. >      樣式 類型>
  7.   
  8.         畫布{border:dashed 2px #CCC}   
  9.     樣式>
  10.   
  11.     腳本 類型 類型 
  12. >  
  13.         函數 $$(id){   
  14.             return document.getElementById(id);   
  15.         }   
  16.         函數 pageLoad(){                var 
  17.  = $$('can'); 可以 = $$('can'); 鎠            var 
  18. 罐子可以
  19. 罐子
  20.             cans.moveTo(20,30);//第一個起點   
  21.             cans.lineTo(120,90);//第二點   
  22.             cans.lineTo(220,60);//第三點(以第二點為起點)                cans.lineWidth
  23. =            cans.行程樣式 = '              罐頭.中風();   
  24.         }  
  25.     script>  
  26.     body onload onload onload
  27. > ;">           canvas id id idid width="400px" "300px">
  28. 4
  29. canvas>  
  30.     
  31. 身體>  

html

>

  

這裡用到的兩個API方法,moveTo和lineTo分別是線段的起點和終點座標,變數為(X座標,Y座標),strokeStyle、stroke分別路徑繪製樣式和繪製路徑。
2、繪製漸層線條
漸層線條就是顏色有漸層的效果,當然漸層的樣式可以遵循路徑的方向也可以不遵循路徑的方向: XML/HTML Code複製內容到剪貼簿
  1. html>  
  2. html>  
  3.     >  
  4.           字元 字元8"
  5. >       
  6. >      樣式 類型>
  7.   
  8.         畫布{border:dashed 2px #CCC}   
  9.     樣式>
  10.   
  11.     腳本 類型 類型 
  12. >  
  13.         函數 $$(id){   
  14.             return document.getElementById(id);   
  15.         }   
  16.         函數 pageLoad(){                var 
  17.  = $$('can'); 可以 = $$('can'); 鎠            var 
  18. 罐子可以
  19. 罐子
  20.             cans.moveTo(0,0);   
  21.             cans.lineTo(400,300);                var gnt1
  22.  = 
  23. 變化的起止座標  
  24.             gnt1.addColorStop(0,'red');//創建變換的開始顏色,0表示偏移量,個人理解為直線上的相對位置,最大為1,一個變換中可寫出任何個漸層顏色  
  25.             gnt1.addColorStop(1,'黃色');                cans.lineWidth=            
  26. cans.行程樣式 = gnt1             罐頭.中風();            }  
  27.     script>  
  28.     body onload onload onload
  29. > ;">           canvas id id idid width="400px" "300px">
  30. 4
  31. canvas>  
  32.     
  33. 身體>  

html

>

  

3、繪製長方形或正方形:
這種矩形框如果使用HTML4只能使用後台程式碼才能產生了,現在HTML5提供的Canvas功能卻很容易就能繪製,所以說HTML5的優越性是相當高的。 XML/HTML Code複製內容到剪貼簿
  1. html>  
  2. html>  
  3.     >  
  4.           字元 字元8"
  5. >       
  6. >      樣式 類型>
  7.   
  8.         畫布{border:dashed 2px #CCC}   
  9.     樣式>
  10.   
  11.     腳本 類型 類型 
  12. >  
  13.         函數 $$(id){   
  14.             return document.getElementById(id);   
  15.         }   
  16.         函數 pageLoad(){                var 
  17.  = $$('can'); 可以 = $$('can'); 鎠            var 
  18. 罐子可以罐子             cans.fillStyle
  19.  = 
  20.             cans.fillRect(30,30,340,240);   
  21.         }        腳本>
  22.        body onload onload
  23.  
  24. onloadonload ;">           畫布 可以 idid 寬度="400px" 
  25.  
  26. >"300px">4
  27. 畫布
  28. >        
  29. 身體
>
   html>  

這裡使用了一個方法-fillRect()從字面上也能知道這個就是填滿一個矩形,這裡的參數值得說明一下fillRect(X,Y,Width,Height),這個和數學裡的座標是不一樣的,具體請看

這裡的X,Y是相對Canvas左上角的起點開始的,謹記! !

4、繪製一個簡單的長方形框

上例中講到要繪製一個矩形塊,填滿了顏色,這個例子只是簡單地繪製一個矩形而不實現填充效果。

XML/HTML Code複製內容到剪貼簿
  1. html>  
  2. html>  
  3.     >  
  4.           字元 字元8"
  5. >       
  6. >      樣式 類型>
  7.   
  8.         畫布{border:dashed 2px #CCC}   
  9.     樣式>
  10.   
  11.     腳本 類型 類型 
  12. >  
  13.         函數 $$(id){   
  14.             return document.getElementById(id);   
  15.         }   
  16.         函數 pageLoad(){                var 
  17.  = $$('can'); 可以 = $$('can'); 鎠            var 
  18. 罐子可以罐子             cans.行程樣式
  19.  = 
  20. '
  21.             cans.StrongRect(30,30,340,240);   
  22.         }   
  23.     腳本>
  24.   
  25.     body onload onload 
  26. onloadonload ;">           畫布 可以 idid 寬度="400px"  
  27. >"300px">4畫布
  28. >        身體
  29. >  
html>     

這個很簡單,和上例一樣,就是將fill替換成了stroke,具體詳見上例。

 5、繪製線性漸變的長方形

漸層是填滿的一種相當不錯的效果,結合實例2和實例3,我們可以創建一個漸變的矩形

XML/HTML Code複製內容到剪貼簿
  1. html>  
  2. html>  
  3.     >  
  4.           字元 字元8"
  5. >       
  6. >      樣式 類型>
  7.   
  8.         畫布{border:dashed 2px #CCC}   
  9.     樣式>
  10.   
  11.     腳本 類型 類型 
  12. >  
  13.         函數 $$(id){   
  14.             return document.getElementById(id);   
  15.         }   
  16.         函數 pageLoad(){                var 
  17.  = $$('can'); 可以 = $$('can'); 鎠            var 
  18. 罐子可以罐子             var gnt1
  19.  = 
  20. 罐頭 
  21.             gnt1.addColorStop(0,'紅色');   
  22.             gnt1.addColorStop(0.5,'綠色');   
  23.             gnt1.addColorStop(1,'藍色');                cans.fillStyle = 
  24.             cans.fillRect(10,10,380,280);   
  25.         }  
  26.     script>  
  27.     body onload onload onload
  28. > ;">           canvas id id idid width="400px" "300px">
  29. 4
  30. canvas>  
  31.     
  32. 身體>  
html
>

  

  


不解釋了,記住fillRect(X,Y,Width,Height)就行了。
6、填充一個圓形
圓形的用途很廣,當然也包含了橢圓。 XML/HTML Code複製內容到剪貼簿
  1. html>  
  2. html>  
  3.     >  
  4.           字元 字元8"
  5. >       
  6. >      樣式 類型>
  7.   
  8.         畫布{border:dashed 2px #CCC}   
  9.     樣式>
  10.   
  11.     腳本 類型 類型 
  12. >  
  13.         函數 $$(id){   
  14.             return document.getElementById(id);   
  15.         }   
  16.         函數 pageLoad(){                var 
  17.  = $$('can'); 可以 = $$('can'); 鎠            var 
  18. 罐子可以
  19. 罐子
  20.             cans.beginPath();   
  21.             cans.arc(200,150,100,0,Math.PI*2,true);   
  22.             cans.closePath();                cans.fillStyle
  23.  = 
  24. 使用紅色應用程式🎜>看,傻眼了,怕上街被愛國者打啊,其實你懂的~~   
  25.             cans.fill();            }  
  26.     script>  
  27.     body onload onload onload
  28. > ;">           canvas id id idid width="400px" "300px">
  29. 4
  30. canvas>  
  31.     
  32. 身體>  
html
>

  

  

這裡的arc方法的用法是arc(X,Y,Radius,startAngle,endAngle,anticlockwise),意思是(圓心X座標,圓心Y座標,半徑,開始角度(弧度),結束角度弧度,是否按照順時針畫); arc中各參數比較:

a、cans.arc(200,150,100,0,Math.PI,true);

c、cans.arc(200,150,100,0,Math.PI/2,true);

c、cans.arc(200,150,100,0,Math.PI/2,true);

d、cans.arc(200,150,100,0,Math.PI/2,false);

 

 7、圓形區塊
  XML/HTML Code複製內容到剪貼簿
  1. html>  
  2. html>  
  3.     >  
  4.           字元 字元8"
  5. >       
  6. >      樣式 類型>
  7.   
  8.         畫布{border:dashed 2px #CCC}   
  9.     樣式>
  10.   
  11.     腳本 類型 類型 
  12. >  
  13.         函數 $$(id){   
  14.             return document.getElementById(id);   
  15.         }   
  16.         函數 pageLoad(){                var 
  17.  = $$('can'); 可以 = $$('can'); 鎠            var 
  18. 罐子可以
  19. 罐子
  20.             cans.beginPath();   
  21.             cans.arc(200,150,100,0,Math.PI*2,false);   
  22.             cans.closePath();                cans.lineWidth
  23.  = 
  24.             cans.行程樣式 = '
  25.              罐頭.中風();   
  26.         }  
  27.     script>  
  28.     body onload onload onload
  29. > ;">           canvas id id idid width="400px" "300px">
  30. 4
  31. canvas>  
  32.     
  33. 身體>  

html

>

  

這裡不解釋了,和上邊的例子相同,lineWidth是控制線條的寬度的。
8、圓形漸層
  XML/HTML Code複製內容到剪貼簿
  1. html>  
  2. html>  
  3.     >  
  4.           字元 字元8"
  5. >       
  6. >      樣式 類型>
  7.   
  8.         畫布{border:dashed 2px #CCC}   
  9.     樣式>
  10.   
  11.     腳本 類型 類型 
  12. >  
  13.         函數 $$(id){   
  14.             return document.getElementById(id);   
  15.         }   
  16.         函數 pageLoad(){                var 
  17.  = $$('can'); 可以 = $$('can'); 鎠            var 
  18. 罐子可以罐子             var gnt
  19.  = 
  20. 罐頭
  21.             gnt.addColorStop(1,'red');   
  22.             gnt.addColorStop(0,'綠色');                cans.fillStyle = 
  23.             cans.fillRect(0,0,800,600);   
  24.         }  
  25.     script>  
  26.     body onload onload onload
  27. > ;">           canvas id id idid width="800px" "600px">
  28. 4
  29. canvas>canvas>
  30. can幕> 🎜>
  31.     身體>  

html

>

  

這裡需要說明的是createRadialGradient方法,參數有(Xstart,Ystart,radiusStart,XEnd,YEnd,radiusEnd),也就是說,它在實行漸變時,使用了兩個圓,一個是原始的圓,一個是漸層式圓,其實,這種透過座標與半徑控制的方式可以實現很多樣式,像是
立體圓
  1.   XML/HTML Code複製內容到剪貼簿
  2. var 
  3. gnt = 
cans
.createRadialGrad,00,050,020 gnt.addColorStop(0,'red');    gnt.addColorStop(1,'#333');  
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

h5項目怎麼運行 h5項目怎麼運行 Apr 06, 2025 pm 12:21 PM

運行 H5 項目需要以下步驟:安裝 Web 服務器、Node.js、開發工具等必要工具。搭建開發環境,創建項目文件夾、初始化項目、編寫代碼。啟動開發服務器,使用命令行運行命令。在瀏覽器中預覽項目,輸入開發服務器 URL。發布項目,優化代碼、部署項目、設置 Web 服務器配置。

H5頁面製作究竟指什麼 H5頁面製作究竟指什麼 Apr 06, 2025 am 07:18 AM

H5 頁面製作是指使用 HTML5、CSS3 和 JavaScript 等技術,創建跨平台兼容的網頁。其核心在於瀏覽器解析代碼,渲染結構、樣式和交互功能。常見技術包括動畫效果、響應式設計和數據交互。為避免錯誤,應使用開發者工具調試;而性能優化和最佳實踐則包括圖像格式優化、減少請求和代碼規範等,以提高加載速度和代碼質量。

h5怎麼製作點擊圖標 h5怎麼製作點擊圖標 Apr 06, 2025 pm 12:15 PM

製作 H5 點擊圖標的步驟包括:在圖像編輯軟件中準備方形源圖像。在 H5 編輯器中添加交互性,設置點擊事件。創建覆蓋整個圖標的熱點。設置點擊事件的操作,如跳轉頁面或觸發動畫。導出 H5 文檔為 HTML、CSS 和 JavaScript 文件。將導出的文件部署到網站或其他平台。

H5頁面製作適合哪些應用場景 H5頁面製作適合哪些應用場景 Apr 05, 2025 pm 11:36 PM

H5(HTML5)適合應用於輕量級應用,如營銷活動頁面、產品展示頁面和企業宣傳微網站。它優勢在於跨平台性和豐富的交互性,但局限性在於復雜的交互和動畫、本地資源訪問和離線功能。

什麼是H5編程語言? 什麼是H5編程語言? Apr 03, 2025 am 12:16 AM

H5不是獨立編程語言,而是HTML5、CSS3和JavaScript的集合,用於構建現代Web應用。 1.HTML5定義網頁結構和內容,提供新標籤和API。 2.CSS3控製樣式和佈局,引入動畫等新特性。 3.JavaScript實現動態交互,通過DOM操作和異步請求增強功能。

H5頁面製作是前端開發嗎 H5頁面製作是前端開發嗎 Apr 05, 2025 pm 11:42 PM

是的,H5頁面製作是前端開發的重要實現方式,涉及HTML、CSS和JavaScript等核心技術。開發者通過巧妙結合這些技術,例如使用<canvas>標籤繪製圖形或使用JavaScript控制交互行為,構建出動態且功能強大的H5頁面。

如何使用地理位置API處理用戶位置隱私和權限? 如何使用地理位置API處理用戶位置隱私和權限? Mar 18, 2025 pm 02:16 PM

本文討論了使用GeOlocation API管理用戶位置隱私和權限,並強調要求權限,確保數據安全性並遵守隱私法律的最佳實踐。

H5和小程序與APP的區別 H5和小程序與APP的區別 Apr 06, 2025 am 10:42 AM

H5、小程序和APP的主要區別在於:技術架構:H5基於網頁技術,小程序和APP為獨立應用程序。體驗和功能:H5輕便易用,功能受限;小程序輕量級,交互性好;APP功能強大,體驗流暢。兼容性:H5跨平台兼容,小程序和APP受平台限制。開發成本:H5開發成本低,小程序中等,APP最高。適用場景:H5適合信息展示,小程序適合輕量化應用,APP適合複雜功能應用。

See all articles