English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Corso di base per disegnare forme con Canvas in JavaScript

Poiché HTML5 è diventato popolare negli ultimi due anni, ho studiato un po', recentemente ho avuto un'idea che anche utilizzerà le funzioni relative a HTML, quindi devo studiare bene.

Ho guardato bene le funzioni di Canvas, sento che le funzionalità di interazione client-side di HTML5 stanno diventando sempre più forti, oggi ho guardato la grafica di Canvas, ecco alcuni esempi, prendo nota per future esigenze.

1、Usa Canvas per disegnare una linea:

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
  </head>
  <style type="text/css">
    canvas{border:dashed 2px #CCC}
  </style>
  <script type="text/javascript">
    function $$(id){
      return document.getElementById(id);
    }
    function pageLoad(){
      var can = $$('can');
      var cans = can.getContext('2d');
      cans.moveTo(20,30);//Il primo punto di partenza
      cans.lineTo(120,90);//Il secondo punto
      cans.lineTo(220,60);//Il terzo punto (partendo dal secondo punto)
      cans.lineWidth=3;
      cans.strokeStyle = 'red';
      cans.stroke();
    }
  </script>
  <body onload="pageLoad();">
    <canvas id="can" width="400px" height="300px">4</canvas>
  </body>
</html>

Le due API utilizzate qui, moveTo e lineTo, sono le coordinate di partenza e di arrivo del segmento di linea, il valore delle variabili è ( Coordinate X, Coordinate Y ), strokeStyle, stroke sono lo stile di disegno del percorso e il disegno del percorso.

2、Disegna la linea di gradiente

La linea di gradiente ha un effetto di cambiamento di colore, ovviamente lo stile di gradiente può seguire la direzione del percorso o non seguire la direzione del percorso:

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
  </head>
  <style type="text/css">
    canvas{border:dashed 2px #CCC}
  </style>
  <script type="text/javascript">
    function $$(id){
      return document.getElementById(id);
    }
    function pageLoad(){
      var can = $$('can');
      var cans = can.getContext('2d');
      cans.moveTo(0,0);
      cans.lineTo(400,300);
      var gnt1 = cans.createLinearGradient(0,0,400,300);//La linea di gradiente lineare di partenza e di arrivo
      gnt1.addColorStop(0,'red'); // crea il colore di inizio della gradazione, 0 rappresenta la quantità di spostamento, personalmente lo interpreto come la posizione relativa sulla retta, il valore massimo è 1, in una gradazione possono essere scritti qualsiasi numero di colori di gradazione
      gnt1.addColorStop(1,'yellow');
      cans.lineWidth=3;
      cans.strokeStyle = gnt1;
      cans.stroke();
    }
  </script>
  <body onload="pageLoad();">
    <canvas id="can" width="400px" height="300px">4</canvas>
  </body>
</html>

3、disegnare un rettangolo o un quadrato:

Questo tipo di cornice rettangolare può essere creato solo con codice di back-end utilizzando HTML4, ora la funzione Canvas fornita da HTML5 può disegnare facilmente, quindi l'uguaglianza di HTML5 è molto alta.

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
  </head>
  <style type="text/css">
    canvas{border:dashed 2px #CCC}
  </style>
  <script type="text/javascript">
    function $$(id){
      return document.getElementById(id);
    }
    function pageLoad(){
      var can = $$('can');
      var cans = can.getContext('2d');
      cans.fillStyle = 'yellow';
      cans.fillRect(30,30,340,240);
    }
  </script>
  <body onload="pageLoad();">
    <canvas id="can" width="400px" height="300px">4</canvas>
  </body>
</html>

Qui viene utilizzato un metodo - fillRect() che, dal nome, può essere riconosciuto come riempimento di un rettangolo, i parametri sono valutabili, è diverso dai coordinate matematiche, dettagli vedi

Qui X, Y sono relativi al punto di partenza in alto a sinistra del Canvas, ricordalo bene!!

4、disegnare un semplice cerchio

Nell'esempio precedente è stato spiegato come disegnare un rettangolo, riempito di colore, questo esempio disegna semplicemente un rettangolo senza implementare l'effetto di riempimento.

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
  </head>
  <style type="text/css">
    canvas{border:dashed 2px #CCC}
  </style>
  <script type="text/javascript">
    function $$(id){
      return document.getElementById(id);
    }
    function pageLoad(){
      var can = $$('can');
      var cans = can.getContext('2d');
      cans.strokeStyle = 'red';
      cans.strokeRect(30,30,340,240);
    }
  </script>
  <body onload="pageLoad();">
    <canvas id="can" width="400px" height="300px">4</canvas>
  </body>
</html>

Questo è molto semplice, come nell'esempio precedente, è sufficiente sostituire fill con stroke, dettagli vedi l'esempio precedente.

5、disegnare un rettangolo lineare con gradazione

La gradazione è un ottimo effetto di riempimento, combinando l'esempio 2 e l'esempio 3, possiamo creare un rettangolo con gradazione.

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
  </head>
  <style type="text/css">
    canvas{border:dashed 2px #CCC}
  </style>
  <script type="text/javascript">
    function $$(id){
      return document.getElementById(id);
    }
    function pageLoad(){
      var can = $$('can');
      var cans = can.getContext('2d');
      var gnt1 = cans.createLinearGradient(10,0,390,0);
      gnt1.addColorStop(0,'red');
      gnt1.addColorStop(0.5,'green');
      gnt1.addColorStop(1,'blue');
      cans.fillStyle = gnt1;
      cans.fillRect(10,10,380,280);
    }
  </script>
  <body onload="pageLoad();">
    <canvas id="can" width="400px" height="300px">4</canvas>
  </body>
</html>

Non spiegare, ricordati fillRect(X,Y,Larghezza,Altura) è sufficiente.

6、riempire un cerchio

L'uso del cerchio è molto ampio, ovviamente include anche l'ellisse.

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
  </head>
  <style type="text/css">
    canvas{border:dashed 2px #CCC}
  </style>
  <script type="text/javascript">
    function $$(id){
      return document.getElementById(id);
    }
    function pageLoad(){
      var can = $$('can');
      var cans = can.getContext('2d');
      cans.beginPath();
      cans.arc(200,150,100,0,Math.PI*2,true);
      cans.closePath();
      cans.fillStyle = 'green';//originariamente qui si usava 'red', guardando lo screenshot, ho fatto un salto di sorpresa, ho paura di essere picchiato dai patrioti in strada, in realtà, tu lo sai~~
      cans.fill();
    }
  </script>
  <body onload="pageLoad();">
    <canvas id="can" width="400px" height="300px">4</canvas>
  </body>
</html>

L'uso del metodo arc qui è arc(X,Y,Raggio,Angolo di Inizio(Arco),Angolo di Fine(Arco),AntiOraologio), il che significa (Coordinate X del centro del cerchio, Coordinate Y del centro del cerchio, Raggio, Angolo di Inizio (Radianti), Angolo di Fine (Radianti), Disegnare in senso antiorario);

Confronto tra i parametri di arc:

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

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

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

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

7、Area circolare

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
  </head>
  <style type="text/css">
    canvas{border:dashed 2px #CCC}
  </style>
  <script type="text/javascript">
    function $$(id){
      return document.getElementById(id);
    }
    function pageLoad(){
      var can = $$('can');
      var cans = can.getContext('2d');
      cans.beginPath();
      cans.arc(200,150,100,0,Math.PI*2,false);
      cans.closePath();
      cans.lineWidth = 5;
      cans.strokeStyle = 'red';
      cans.stroke();
    }
  </script>
  <body onload="pageLoad();">
    <canvas id="can" width="400px" height="300px">4</canvas>
  </body>
</html>

Non viene spiegato, è lo stesso esempio precedente, lineWidth controlla la larghezza della linea.

8、Circolare progressione

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
  </head>
  <style type="text/css">
    canvas{border:dashed 2px #CCC}
  </style>
  <script type="text/javascript">
    function $$(id){
      return document.getElementById(id);
    }
    function pageLoad(){
      var can = $$('can');
      var cans = can.getContext('2d');
      var gnt = cans.createRadialGradient(200,300,50,200,200,200);
      gnt.addColorStop(1,'red');
      gnt.addColorStop(0,'green');
      cans.fillStyle = gnt;
      cans.fillRect(0,0,800,600);
    }
  </script>
  <body onload="pageLoad();">
    <canvas id="can" width="800px" height="600px">4</canvas>
  </body>
</html>

Deve essere chiarito che il metodo createRadialGradient, i parametri sono (Xstart,Ystart,radiusStart,XEnd,YEnd,radiusEnd), che significa che durante l'esecuzione della trasformazione, utilizza due cerchi, uno è il cerchio originale, l'altro è il cerchio di transizione. In realtà, questo tipo di controllo di coordinate e raggio può realizzare molti stili, come

Cerchio tridimensionale

var gnt = cans.createRadialGradient(200,150,0,200,50,250);
gnt.addColorStop(0,'red');
gnt.addColorStop(1,'#333');

Questo è tutto il contenuto dell'articolo, speriamo che sia utile per la tua apprendimento, e ti preghiamo di supportare e applaudire il manuale di insegnamento.

Dichiarazione: il contenuto di questo articolo è stato preso da Internet, di proprietà dei rispettivi autori, il contenuto è stato contribuito volontariamente dagli utenti di Internet e caricato autonomamente, questo sito non detiene i diritti di proprietà, non è stato editato manualmente e non assume responsabilità legali correlate. Se trovi contenuti sospetti di copyright, ti preghiamo di inviare una e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare, fornendo prove pertinenti. Una volta verificata, questo sito eliminerà immediatamente il contenuto sospetto di violazione del copyright.

Ti potrebbe interessare