Rumah >hujung hadapan web >Tutorial H5 >Lukisan Kanvas HTML5 - Gunakan Kanvas untuk melukis grafik dan tutorial teks Gunakan kanvas html5 untuk melukis gambar yang cantik_html5 kemahiran tutorial

Lukisan Kanvas HTML5 - Gunakan Kanvas untuk melukis grafik dan tutorial teks Gunakan kanvas html5 untuk melukis gambar yang cantik_html5 kemahiran tutorial

WBOY
WBOYasal
2016-05-16 15:46:301726semak imbas

HTML5 sangat popular Baru-baru ini, saya mempunyai idea untuk menggunakan fungsi berkaitan HTML, jadi saya harus mempelajarinya dengan teliti.

Setelah melihat dengan baik fungsi Canvas, saya merasakan bahawa HTML5 semakin berfungsi dalam interaksi sisi pelanggan Hari ini saya melihat lukisan Kanvas. Berikut adalah beberapa contoh guna.

1. Gunakan Kanvas untuk melukis garis lurus:



Kod XML/HTMLSalin kandungan ke papan keratan
  1. >  
  2. <html>  
  3.     <kepala>  
  4.         <meta charset="UTF- 8">  
  5.     kepala>  
  6.     <gaya taip="teks/ css">  
  7.         kanvas{border:dashed 2px #CCC}   
  8.     gaya>  
  9.     <skrip taip="teks/ javascript">  
  10.         fungsi $$(id){   
  11.             return document.getElementById(id);   
  12.         }   
  13.         fungsi pageLoad(){   
  14.              var boleh = $$('boleh');   
  15.              var bolehtin = can.getContext('2d');   
  16.             cans.moveTo(20,30);//第一个起点   
  17.             cans.lineTo(120,90);//第二个点   
  18.             cans.lineTo(220,60);//第三个点(以第二个点为起点)   
  19.              tin.lineWidth=3;   
  20.              tin.strokeStyle = 'merah';   
  21.             cans.stroke();   
  22.         }
  23.  skrip> 
  24.  <badan muat="pageLoad( );">
  25.  <kanvas id="boleh" lebar="400px" tinggi="300px">4kanvas>
  26.  badan> 
  27. html>

Dua kaedah API yang digunakan di sini, moveTo dan lineTo ialah koordinat titik mula dan titik akhir segmen garisan masing-masing, pembolehubah ialah (koordinat X, koordinat Y), strokeStyle dan stroke masing-masing gaya lukisan laluan dan laluan lukisan.

2. Lukiskan garisan kecerunan

Garisan kecerunan mempunyai kesan kecerunan dalam warna Sudah tentu gaya kecerunan boleh mengikut arah laluan atau tidak:

Kod XML/HTMLSalin kandungan ke papan keratan
  1. >  
  2. <html>  
  3.     <kepala>  
  4.         <meta charset="UTF- 8">  
  5.     kepala>  
  6.     <gaya taip="teks/ css">  
  7.         kanvas{border:dashed 2px #CCC}   
  8.     gaya>  
  9.     <skrip taip="teks/ javascript">  
  10.         fungsi $$(id){   
  11.             return document.getElementById(id);   
  12.         }   
  13.         fungsi pageLoad(){   
  14.              var boleh = $$('boleh');   
  15.              var bolehtin = can.getContext('2d');   
  16.             cans.moveTo(0,0);   
  17.             cans.lineTo(400,300);   
  18.              var gnt1 = tin.createLinearGradient(0,0,400/碧聽);/昿家标   
  19.             gnt1.addColorStop(0,'red');//创建渐变的开始颜色,0表示偏移量,个人理監的監个人理監的監个人理監的罗个人理秣的开始颜色。最大为1,一个渐变中可以写任意个渐变颜色   
  20.             gnt1.addColorStop(1,'kuning');   
  21.              tin.lineWidth=3;   
  22.             tin.strokeStyle = gnt1;   
  23.             cans.stroke();   
  24.         }
  25.  skrip> 
  26.  <badan muat="pageLoad( );">
  27.  <kanvas id="boleh" lebar="400px" tinggi="300px">4kanvas>
  28.  badan> 
  29. html>

3. Lukiskan segi empat tepat atau segi empat sama:

Jika anda menggunakan HTML4, bingkai segi empat tepat seperti ini hanya boleh dijana menggunakan kod latar belakang Kini fungsi Kanvas yang disediakan oleh HTML5 boleh dilukis dengan mudah, jadi kelebihan HTML5 adalah agak tinggi.

Kod XML/HTMLSalin kandungan ke papan keratan
  1. >  
  2. <html>  
  3.     <kepala>  
  4.         <meta charset="UTF- 8">  
  5.     kepala>  
  6.     <gaya taip="teks/ css">  
  7.         kanvas{border:dashed 2px #CCC}   
  8.     gaya>  
  9.     <skrip taip="teks/ javascript">  
  10.         fungsi $$(id){   
  11.             return document.getElementById(id);   
  12.         }   
  13.         fungsi pageLoad(){   
  14.              var boleh = $$('boleh');   
  15.              var bolehtin = can.getContext('2d');   
  16.              tin.fillStyle = 'kuning';   
  17.             cans.fillRect(30,30,340,240);   
  18.         }   
  19.     skrip>  
  20.     <badan memuat="pageLoad( );">  
  21.         <kanvas id="boleh"  lebar="400px" tinggi="300px">4kanvas>   
  22.     badan>  
  23. html>  

Kaedah digunakan di sini - fillRect(). sama seperti koordinat dalam matematik, sila lihat

untuk butiran

X dan Y di sini bermula dari titik permulaan berbanding sudut kiri atas Kanvas, ingat! !

4. Lukiskan kotak segi empat tepat

Contoh di atas bercakap tentang melukis bongkah segi empat tepat dan mengisinya dengan warna Contoh ini hanya melukis segi empat tepat tanpa menyedari kesan pengisian.

Kod XML/HTMLSalin kandungan ke papan keratan
  1. >  
  2. <html>  
  3.     <kepala>  
  4.         <meta charset="UTF- 8">  
  5.     kepala>  
  6.     <gaya taip="teks/ css">  
  7.         kanvas{border:dashed 2px #CCC}   
  8.     gaya>  
  9.     <skrip taip="teks/ javascript">  
  10.         fungsi $$(id){   
  11.             return document.getElementById(id);   
  12.         }   
  13.         fungsi pageLoad(){   
  14.              var boleh = $$('boleh');   
  15.              var bolehtin = can.getContext('2d');   
  16.              tin.strokeStyle = 'merah';   
  17.             cans.strokeRect(30,30,340,240);   
  18.         }   
  19.     skrip>  
  20.     <badan memuat="pageLoad( );">  
  21.         <kanvas id="boleh"  lebar="400px" tinggi="300px">4kanvas>   
  22.     badan>  
  23. html>  
  24.   

Ini sangat mudah, sama seperti contoh di atas, hanya gantikan isi dengan pukulan Lihat contoh di atas untuk butiran.

5. Lukis segi empat tepat dengan kecerunan linear

Kecerunan ialah kesan pengisian yang cukup baik dengan Menggabungkan Contoh 2 dan Contoh 3, kita boleh mencipta segi empat tepat kecerunan

Kod XML/HTMLSalin kandungan ke papan keratan
  1. >  
  2. <html>  
  3.     <kepala>  
  4.         <meta charset="UTF- 8">  
  5.     kepala>  
  6.     <gaya taip="teks/ css">  
  7.         kanvas{border:dashed 2px #CCC}   
  8.     gaya>  
  9.     <skrip taip="teks/ javascript">  
  10.         fungsi $$(id){   
  11.             return document.getElementById(id);   
  12.         }   
  13.         fungsi pageLoad(){   
  14.              var boleh = $$('boleh');   
  15.              var bolehtin = can.getContext('2d');   
  16.              var gnt1 = tin.createLinearGradient(10,0,390,0);   
  17.             gnt1.addColorStop(0,'red');   
  18.             gnt1.addColorStop(0.5,'hijau');   
  19.             gnt1.addColorStop(1,'biru');   
  20.              cans.fillStyle = gnt1;   
  21.             cans.fillRect(10,10,380,280);   
  22.         }
  23.  skrip> 
  24.  <badan muat="pageLoad( );">
  25.  <kanvas id="boleh" lebar="400px" tinggi="300px">4kanvas>
  26.  badan> 
  27. html>

Tidak perlu jelaskan, cuma ingat fillRect(X,Y,Width,Height).

6. Isi bulatan


Bentuk bulat digunakan secara meluas, termasuk bujur.

Kod XML/HTMLSalin kandungan ke papan keratan
  1. >  
  2. <html>  
  3.     <kepala>  
  4.         <meta charset="UTF- 8">  
  5.     kepala>  
  6.     <gaya taip="teks/ css">  
  7.         kanvas{border:dashed 2px #CCC}   
  8.     gaya>  
  9.     <skrip taip="teks/ javascript">  
  10.         fungsi $$(id){   
  11.             return document.getElementById(id);   
  12.         }   
  13.         fungsi pageLoad(){   
  14.              var boleh = $$('boleh');   
  15.              var bolehtin = can.getContext('2d');   
  16.             cans.beginPath();   
  17.             cans.arc(200,150,100,0,Math.PI*2,true);   
  18.             cans.closePath();   
  19.              cans.fillStyle = 'hijau';//本来这里作最这里作最家看,傻眼了,怕上街被爱国者打啊,其实你懂的~~   
  20.             cans.fill();   
  21.         }
  22.  skrip> 
  23.  <badan muat="pageLoad( );">
  24.  <kanvas id="boleh" lebar="400px" tinggi="300px">4kanvas>
  25.  badan> 
  26. html>

Penggunaan kaedah lengkok di sini ialah lengkok(X,Y,Jejari,Sudut mula,sudut hujung,lawan arah jam), yang bermaksud (koordinat X pusat bulatan, koordinat Y pusat bulatan, jejari, sudut mula (radian), sudut hujung radian, sama ada mengikut Lukis mengikut arah jam);

Perbandingan parameter dalam arka:

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. Blok pekeliling

Kod XML/HTMLSalin kandungan ke papan keratan
  1. >  
  2. <html>  
  3.     <kepala>  
  4.         <meta charset="UTF- 8">  
  5.     kepala>  
  6.     <gaya taip="teks/ css">  
  7.         kanvas{border:dashed 2px #CCC}   
  8.     gaya>  
  9.     <skrip taip="teks/ javascript">  
  10.         fungsi $$(id){   
  11.             return document.getElementById(id);   
  12.         }   
  13.         fungsi pageLoad(){   
  14.              var boleh = $$('boleh');   
  15.              var bolehtin = can.getContext('2d');   
  16.             cans.beginPath();   
  17.             cans.arc(200,150,100,0,Math.PI*2,false);   
  18.             cans.closePath();   
  19.              tin.lineWidth = 5;   
  20.              tin.strokeStyle = 'merah';   
  21.             cans.stroke();   
  22.         }
  23.  skrip> 
  24.  <badan muat="pageLoad( );">
  25.  <kanvas id="boleh" lebar="400px" tinggi="300px">4kanvas>
  26.  badan> 
  27. html>

Saya tidak akan menerangkannya di sini Sama seperti contoh di atas, lineWidth mengawal lebar garisan.

8. Kecerunan bulat

Kod XML/HTMLSalin kandungan ke papan keratan
  1. >  
  2. <html>  
  3.     <kepala>  
  4.         <meta charset="UTF- 8">  
  5.     kepala>  
  6.     <gaya taip="teks/ css">  
  7.         kanvas{border:dashed 2px #CCC}   
  8.     gaya>  
  9.     <skrip taip="teks/ javascript">  
  10.         fungsi $$(id){   
  11.             return document.getElementById(id);   
  12.         }   
  13.         fungsi pageLoad(){   
  14.              var boleh = $$('boleh');   
  15.              var bolehtin = can.getContext('2d');   
  16.              var gnt = tin.createRadialGradient(200,200,02,00,000);   
  17.             gnt.addColorStop(1,'red');   
  18.             gnt.addColorStop(0,'hijau');   
  19.              cans.fillStyle = gnt;   
  20.             cans.fillRect(0,0,800,600);   
  21.         }
  22.  skrip> 
  23.  <badan muat="pageLoad( );">
  24.  <kanvas id="boleh" lebar="800px" tinggi="600px">4kanvas>
  25.  badan> 
  26. html>

Apa yang perlu dijelaskan di sini ialah kaedah createRadialGradient, parameternya adalah (Xstart, Ystart, radiusStart, XEnd, YEnd, radiusEnd), iaitu, apabila ia melaksanakan kecerunan, ia menggunakan dua bulatan, satu ialah bulatan asal dan satu lagi Ia adalah bulatan kecerunan Malah, kaedah kawalan koordinat dan jejari ini boleh mencapai banyak gaya, seperti

.

Bulatan tiga dimensi

Kod XML/HTMLSalin kandungan ke papan keratan
  1. var gnt = tin.createRadialGradient(200,150,0,200,50,250);
  2. gnt.addColorStop(0,'red');
  3. gnt.addColorStop(1,'#333');
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn