Canvas in JavaScript | Aulab

GUIDE PER ASPIRANTI PROGRAMMATORI

Canvas in JavaScript

La tela (canvas) è un’area rettangolare vuota dello schermo su cui è possibile disegnare vari elementi grafici, come linee, cerchi e immagini. Un canvas è quindi un elemento HTML utile per disegnare elementi grafici su una pagina Web tramite script. Il canvas può creare animazioni, grafici interattivi e altre visualizzazioni dinamiche. È supportato dalla maggior…

Lezione 22 / 23
Leo Sorge
Immagine di copertina

Vuoi avviare una nuova carriera o fare un upgrade?

Trova il corso Digital & Tech più adatto a te nel nostro catalogo!

La tela (canvas) è un’area rettangolare vuota dello schermo su cui è possibile disegnare vari elementi grafici, come linee, cerchi e immagini. Un canvas è quindi un elemento HTML utile per disegnare elementi grafici su una pagina Web tramite script. Il canvas può creare animazioni, grafici interattivi e altre visualizzazioni dinamiche. È supportato dalla maggior parte dei browser Web moderni.

L’ambiente di canvas è bidimensionale, ovvero sul piano. Per lavorare in tre dimensioni esistono altre soluzioni, come WebGL o three.js.

Prendi il file index.html, localizza i tag body ed inserisci tra loro il seguente codice:

<h1>Guida AULAB su JavaScript</h1>
<canvas id="myCanvas"></canvas>
<script>
   let canvas = document.getElementById("myCanvas");
   let ctx = canvas.getContext("2d");

   ctx.fillStyle = "red";
   ctx.fillRect(20, 20, 150, 100);

La prima riga dello script recupera il nodo nel DOM che rappresenta l’elemento <canvas> e chiama il metodo document.getElementById(). A questo punto è possibile disegnare, partendo dal contesto del disegno, usando getContext() per indicare la bidimensionalità, 2d.

Eseguendolo su LiveServer, otterrai un quadrato rosso in alto a destra.

Vediamo riga per riga cosa succede.

Nell’HTML bisogna fissare un riferimento al nuovo oggetto, di nome myCanvas:

<canvas id="myCanvas"></canvas>

Poi guarda lo script. 

La prima cosa da fare è dichiarare una variabile che contenga il canvas passato dal linguaggio HTML:

var canvas = document.getElementById("myCanvas");

Per disegnare si usa, normalmente, un foglio o tela a due dimensioni:

var ctx = canvas.getContext("2d");

Per la quale scegliamo come “stile di riempimento” il colore rosso:

ctx.fillStyle = "red";

Chiediamo, ora, di riempire (fill) un rettangolo sulla tela, con quattro parametri: posizione, attraverso il punto più in alto a sinistra (20, 20), la larghezza (150) e l’altezza (100).

ctx.fillRect(20, 20, 150, 100);

Proviamo a complicare l’esempio, unendo anche il controllo del mouse come hai visto nella sezione Events.

Il seguente programma legge la posizione del mouse e quando clicchi sul tasto sinistro sposta in quel posto il rettangolo rosso.

<body>
   <h1>Guida AULAB su JavaScript</h1>
   <canvas id="myCanvas"></canvas>
   <script>
      // Get the canvas element
      let canvas = document.getElementById("myCanvas");
      let ctx = canvas.getContext("2d");

      // Set the canvas size
      canvas.width = window.innerWidth;
      canvas.height = window.innerHeight;

      // Get the mouse position and draw a red box on that position
      canvas.addEventListener("mousedown", function(event) {
         if(event.button === 0){
            let x = event.clientX;
            let y = event.clientY;
            ctx.clearRect(0, 0, canvas.width, canvas.height);
            ctx.fillStyle = "red";
            ctx.fillRect(x-50, y-50, 100, 100);
         }
      });
   </script>

Sei indeciso sul percorso? 💭

Parliamone! Scrivici su Whatsapp e risponderemo a tutte le tue domande per capire quale dei nostri corsi è il più adatto alle tue esigenze.

Oppure chiamaci al 800 128 626