Guida per Principianti su JavaScript - Canvas: Introduzione al Disegno Digitale
Ciao lì, futuro programmatore! Sono entusiasta di essere il tuo guida in questo viaggio emozionante nel mondo di JavaScript e Canvas. Come qualcuno che ha insegnato scienze informatiche per più di un decennio, posso dirti che Canvas è uno dei temi più divertenti e gratificanti da imparare. È come avere un parco giochi digitale direttamente nel tuo browser web!
Cos'è Canvas?
Prima di immergerci nel codice, capiamo cos'è Canvas. Immagina di avere un foglio di carta bianco e un set di penne colorate. Questo è essenzialmente ciò che è Canvas nel mondo digitale - una zona vuota sulla tua pagina web dove puoi disegnare tutto ciò che vuoi utilizzando JavaScript!
Canvas è stato introdotto con HTML5 e da allora è diventato uno strumento potente per creare grafica, animazioni e persino giochi direttamente nei browser web. È come avere un piccolo studio artistico direttamente nel tuo editor di codice!
Utilizzare Canvas con JavaScript
Ora, mettiamo le mani al lavoro e iniziamo a disegnare! Prima, dobbiamo impostare il nostro Canvas in HTML.
<canvas id="myCanvas" width="400" height="200"></canvas>
Questo crea un elemento canvas largo 400 pixel e alto 200 pixel. Pensa a esso come il tuo tavolo da disegno digitale.
Iniziare con Canvas
Per iniziare a disegnare sul nostro canvas, dobbiamo ottenere un riferimento ad esso nel nostro codice JavaScript e ottenere il suo contesto di disegno.
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');
Il metodo getContext('2d')
ci fornisce un contesto di rendering 2D - lo strumento che useremo per disegnare sul nostro canvas.
Disegnare Forme
Iniziamo con qualcosa di semplice - disegnare un rettangolo!
ctx.fillStyle = 'blue';
ctx.fillRect(50, 50, 100, 75);
Questo codice disegna un rettangolo blu partendo dalle coordinate (50, 50) con una larghezza di 100 pixel e un'altezza di 75 pixel. È come dire alla tua penna digitale: "Ehi, disegna un rettangolo qui, e fallo di questa dimensione!"
Disegnare Linee
Ora, proviamo a disegnare una linea:
ctx.beginPath();
ctx.moveTo(50, 50);
ctx.lineTo(200, 100);
ctx.stroke();
Questo codice inizia un nuovo percorso, sposta la "penna" alle coordinate (50, 50), poi disegna una linea fino a (200, 100) e finalmente traccia il percorso per renderlo visibile. È come giocare a collegare i punti, ma con il codice!
Disegnare Cerchi
Perché non disegniamo un volto sorridente? Prima, disegniamo un cerchio per il viso:
ctx.beginPath();
ctx.arc(200, 100, 50, 0, Math.PI * 2);
ctx.fillStyle = 'yellow';
ctx.fill();
ctx.stroke();
Questo disegna un cerchio giallo con un contorno nero. Il metodo arc
potrebbe sembrare spaventoso, ma pensa a esso come dire alla tua penna: "Disegna un cerchio centrato alle coordinate (200, 100), con un raggio di 50, partendo da 0 e andando tutto il giro (è ciò che significa Math.PI * 2
)."
Aggiungere Testo
Aggiungiamosome testo al nostro canvas:
ctx.font = '20px Arial';
ctx.fillStyle = 'black';
ctx.fillText('Ciao, Canvas!', 10, 30);
Questo imposta il font a 20-pixel Arial, imposta il colore a nero e scrive "Ciao, Canvas!" partendo dalla posizione (10, 30).
Esempi
Ora che abbiamo coperto le basi, esploriamo alcuni esempi divertenti per vedere cosa può fare veramente Canvas!
Esempio 1: Disegnare una Casa
// Impostare canvas
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');
// Disegnare il corpo della casa
ctx.fillStyle = 'brown';
ctx.fillRect(100, 100, 150, 100);
// Disegnare il tetto
ctx.beginPath();
ctx.moveTo(100, 100);
ctx.lineTo(175, 50);
ctx.lineTo(250, 100);
ctx.fillStyle = 'red';
ctx.fill();
// Disegnare la porta
ctx.fillStyle = 'blue';
ctx.fillRect(150, 150, 50, 50);
// Disegnare la finestra
ctx.fillStyle = 'yellow';
ctx.fillRect(200, 120, 30, 30);
Questo codice disegna una casa semplice con un corpo marrone, un tetto rosso, una porta blu e una finestra gialla. È come costruire una casa con blocco di codice invece di Lego!
Esempio 2: Cerchio Animato
Facciamo muovere le cose! Ecco una semplice animazione di un cerchio che rimbalza:
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');
let x = 50;
let y = 50;
let dx = 2;
let dy = 2;
const radius = 20;
function drawCircle() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.beginPath();
ctx.arc(x, y, radius, 0, Math.PI * 2);
ctx.fillStyle = 'green';
ctx.fill();
if (x + radius > canvas.width || x - radius < 0) {
dx = -dx;
}
if (y + radius > canvas.height || y - radius < 0) {
dy = -dy;
}
x += dx;
y += dy;
requestAnimationFrame(drawCircle);
}
drawCircle();
Questo codice crea un cerchio verde che rimbalza intorno al canvas. È come creare il tuo piccolo gioco di Pong!
Tabella dei Metodi Canvas
Ecco una comoda tabella di alcuni metodi Canvas che abbiamo utilizzato e di altri pochi:
Metodo | Descrizione |
---|---|
fillRect(x, y, width, height) |
Disegna un rettangolo riempito |
strokeRect(x, y, width, height) |
Disegna un contorno rettangolare |
clearRect(x, y, width, height) |
Cancella l'area rettangolare specificata |
beginPath() |
Inizia un nuovo percorso |
moveTo(x, y) |
Sposta il percorso al punto specificato |
lineTo(x, y) |
Disegna una linea al punto specificato |
arc(x, y, radius, startAngle, endAngle) |
Disegna un arco o un cerchio |
fill() |
Riempi il percorso corrente |
stroke() |
Traccia il percorso corrente |
fillText(text, x, y) |
Disegna il testo riempito sul canvas |
strokeText(text, x, y) |
Disegna il contorno del testo sul canvas |
Ricorda, imparare a codificare è come imparare una nuova lingua. Richiede tempo e pratica, ma prima di sapere, sarai creare cose meravigliose con Canvas! Continua a sperimentare, prova a combinare diverse forme e metodi, e, soprattutto, divertiti. Chi lo sa? Il prossimo grande gioco web potrebbe essere creato da te utilizzando Canvas!
Credits: Image by storyset