⊗jsSpCnvLn 262 of 294 menu

Disegnare linee tramite canvas in JavaScript

Iniziamo con qualcosa di semplice - disegnare linee. Per capire come funziona, immagina di avere un foglio di carta e una matita. Tu puoi disegnare su questo foglio, oppure puoi spostare semplicemente la matita nel punto desiderato senza disegnare.

Allo stesso modo funziona JavaScript: ha una matita (o una penna per disegnare), nel punto desiderato puoi spostarla usando il metodo moveTo, e disegnare - usando il metodo lineTo.

Entrambi i metodi accettano come parametri il punto in cui spostare la punta della penna - come primo parametro la coordinata orizzontale, e come secondo - quella verticale. L'origine delle coordinate - il punto 0, 0 - è l'angolo in alto a sinistra dell'elemento.

Quando la penna si sposta nel punto desiderato - il metodo moveTo semplicemente sposta, mentre lineTo durante lo spostamento disegna una linea dalla posizione corrente della penna fino al punto in cui essa si sposterà.

Tuttavia, se esegui il codice sopra - non succederà nulla: è necessario scrivere altri due comandi: il primo comando beginPath deve essere indicato prima di iniziare a disegnare la linea, e il secondo comando stroke deve essere chiamato dopo tutte le combinazioni di moveTo e lineTo affinché la linea venga disegnata.

Quindi, scriviamo un codice funzionante per disegnare una linea:

Disegniamo una linea

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(150, 50); ctx.stroke();

:

Disegniamo una freccia

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(150, 50); ctx.stroke();

:

Disegniamo un triangolo

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(150, 50); ctx.lineTo(50, 50); ctx.stroke();

:

Disegniamo un quadratino

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(150, 50); ctx.lineTo(150, 150); ctx.lineTo(50, 150); ctx.closePath(); ctx.stroke();

:

Chiusura delle figure

Per disegnare una figura chiusa non è obbligatorio disegnare tutte le linee - l'ultima linea può essere disegnata automaticamente e chiudere la figura. Per fare questo, prima del metodo stroke si deve chiamare il metodo closePath.

Questo metodo tenta di chiudere la figura, disegnando una linea retta dal punto finale a quello iniziale. Se la figura era già chiusa o è semplicemente un punto, allora il metodo non fa nulla.

Disegniamo un triangolo, usando closePath:

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(150, 50); //ctx.lineTo(50, 50); - questo passo lo omettiamo ctx.closePath(); ctx.stroke();

:

Riempimento delle figure

Invece del metodo stroke si può usare il metodo fill - in questo caso la figura non deve necessariamente essere completamente chiusa - si riempirà comunque:

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(150, 50); //ctx.lineTo(50, 50); - questo passo lo omettiamo //ctx.closePath(); - e anche questo ctx.fill();

:

Problemi pratici

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta