首頁 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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1664
14
CakePHP 教程
1422
52
Laravel 教程
1316
25
PHP教程
1267
29
C# 教程
1239
24
H5代碼:可訪問性和語義HTML H5代碼:可訪問性和語義HTML Apr 09, 2025 am 12:05 AM

H5通過語義化元素和ARIA屬性提升網頁的可訪問性和SEO效果。 1.使用、、等元素組織內容結構,提高SEO。 2.ARIA屬性如aria-label增強可訪問性,輔助技術用戶可順利使用網頁。

H5指的是什麼?探索上下文 H5指的是什麼?探索上下文 Apr 12, 2025 am 12:03 AM

H5referstoHTML5,apivotaltechnologyinwebdevelopment.1)HTML5introducesnewelementsandAPIsforrich,dynamicwebapplications.2)Itsupportsmultimediawithoutplugins,enhancinguserexperienceacrossdevices.3)SemanticelementsimprovecontentstructureandSEO.4)H5'srespo

H5:網絡標準和技術的發展 H5:網絡標準和技術的發展 Apr 15, 2025 am 12:12 AM

Web标准和技术从HTML4、CSS2和简单的JavaScript演变至今,经历了显著的发展。1)HTML5引入了Canvas、WebStorage等API,增强了Web应用的复杂性和互动性。2)CSS3增加了动画和过渡功能,使页面效果更加丰富。3)JavaScript通过Node.js和ES6的现代化语法,如箭头函数和类,提升了开发效率和代码可读性,这些变化推动了Web应用的性能优化和最佳实践的发展。

H5代碼:Web開發人員的最佳實踐 H5代碼:Web開發人員的最佳實踐 Apr 16, 2025 am 12:14 AM

H5代碼的最佳實踐包括:1.使用正確的DOCTYPE聲明和字符編碼;2.採用語義化標籤;3.減少HTTP請求;4.使用異步加載;5.優化圖像。這些實踐能提升網頁的效率、可維護性和用戶體驗。

H5:工具,框架和最佳實踐 H5:工具,框架和最佳實踐 Apr 11, 2025 am 12:11 AM

H5開發需要掌握的工具和框架包括Vue.js、React和Webpack。 1.Vue.js適用於構建用戶界面,支持組件化開發。 2.React通過虛擬DOM優化頁面渲染,適合複雜應用。 3.Webpack用於模塊打包,優化資源加載。

H5是HTML5的速記嗎?探索細節 H5是HTML5的速記嗎?探索細節 Apr 14, 2025 am 12:05 AM

H5不僅僅是HTML5的簡稱,它代表了一個更廣泛的現代網頁開發技術生態:1.H5包括HTML5、CSS3、JavaScript及相關API和技術;2.它提供更豐富、互動、流暢的用戶體驗,能在多設備上無縫運行;3.使用H5技術棧可以創建響應式網頁和復雜交互功能。

H5和HTML5:網絡開發中常用的術語 H5和HTML5:網絡開發中常用的術語 Apr 13, 2025 am 12:01 AM

H5與HTML5指的是同一個東西,即HTML5。 HTML5是HTML的第五個版本,帶來了語義化標籤、多媒體支持、畫布與圖形、離線存儲與本地存儲等新功能,提升了網頁的表現力和交互性。

HTML5的遺產:當前了解H5 HTML5的遺產:當前了解H5 Apr 10, 2025 am 09:28 AM

HTML5hassignificantlytransformedwebdevelopmentbyintroducingsemanticelements,enhancingmultimediasupport,andimprovingperformance.1)ItmadewebsitesmoreaccessibleandSEO-friendlywithsemanticelementslike,,and.2)HTML5introducednativeandtags,eliminatingthenee

See all articles