Il listato scritto nel precedente
articolo ottiene dal DOM l’elemento con ID
tela, che rappresenta il nostro oggetto canvas e verifica la sua esistenza e il supporto da parte del browser correntemente in uso. Se la verifica ha avuto esisto positivo allora si invoca sull’oggetto canvas il metodo
getContext con argomento
“2d”, che consente di ottenere il contesto grafico sul quale effettuare le operazioni di disegno. Per ora, non è possibile, in modo standard, passare come argomento la stringa
“3d”, in quanto un contesto di disegno per un rendering a tre dimensioni non è ancora, ufficialmente, supportato.
Esiste tuttavia una specifica, denominata
WebGL, che ha lo scopo di fornire un'API 3D a basso livello, basata sulle API OpenGL ES 2.0, utilizzabile attraverso il tag canvas di HTML5: essa è in corso di sviluppo da parte del gruppo WebGL — composto da Mozilla, Google, Apple e Opera Foundation — in seno a un consorzio, cui fanno parte aziende del calibro di AMD, Samsung, Intel, IBM, ecc., denominato
Khronos Group.
Quest'ultimo intende sviluppare
standard aperti e
royalty-free di tecnologie che consentano lo sviluppo di applicazioni, che fanno un uso predominante di grafica, video, immagini, audio e computazione parallela. Tra gli standard sviluppati da questo gruppo ricordiamo:
OpenGL,
OpenCL,
OpenGL ES (API per la grafica 2D e 3D per i sistemi
embedded come cellulari, console, ecc.) e
OpenML (API per la gestione dei media digitali).
Dopo questa breve digressione sul Web 3D, ritorniamo al disegno di elementi grafici in un contesto 2D, esaminando il seguente snippet di codice, che crea un rettangolo riempito di colore rosso, un rettangolo vuoto con i bordi gialli e un rettangolo di cancellazione:
context.fillStyle = "#FF0000";
context.fillRect(0, 0, 250, 50);
context.lineWidth = 4;
context.strokeStyle = "#FFFF00";
context.strokeRect(0, 60, 250, 100);
context.clearRect(5, 5, 80, 10);
Quando si disegna in un canvas bisogna riferirsi a un sistema di coordinate spaziali immaginando una griglia (un piano) dove il valore della coordinata x si riferisce al suo angolo sinistro e il valore della coordinata y si riferisce al suo angolo superiore. Inoltre, gli incrementi positivi della coordinata x causano spostamenti verso la destra del piano mentre incrementi positivi della coordinata y causano spostamenti verso il basso del medesimo piano.
- Pubblicazioni correlate:
- 10-05-2010 Guida ad HTML5: storia della sua nascita (1/3)
- 11-05-2010 Guida ad HTML5: storia della sua nascita (2/3)
- 17-05-2010 Guida ad HTML5: storia della sua nascita (3/3)
- 18-05-2010 Guida ad HTML5: supporto dei browser (1/6)
- 24-05-2010 Guida ad HTML5: supporto dei browser (2/6)
- 25-05-2010 Guida ad HTML5: supporto dei browser (3/6)
- 31-05-2010 Guida ad HTML5: supporto dei browser (4/6)
- 01-06-2010 Guida ad HTML5: supporto dei browser (5/6)
- 07-06-2010 Guida ad HTML5: supporto dei browser (6/6)
- 08-06-2010 Guida ad HTML5: l'elemento canvas, l'area del disegno
- 18-06-2010 Guida ad HTML5: l’elemento canvas, disegno di forme geometriche (2/4)
- 21-06-2010 Guida ad HTML5: l’elemento canvas, disegno di forme geometriche (3/4)
- 25-06-2010 Guida ad HTML5: l’elemento canvas, disegno di forme geometriche (4/4)
- 28-06-2010 Guida ad HTML5: l’elemento canvas, immagini e testo (1/4)
- 02-07-2010 Guida ad HTML5: l’elemento canvas, immagini e testo (2/4)
- 05-07-2010 Guida ad HTML5: l’elemento canvas, immagini e testo (3/4)
- 09-07-2010 Guida ad HTML5: l’elemento canvas, immagini e testo (4/4)
- 12-07-2010 Guida ad HTML5: l’elemento canvas, manipolazione diretta dei pixel (1/2)
- 16-07-2010 Guida ad HTML5: l’elemento canvas, manipolazione diretta dei pixel (2/2)
- 19-07-2010 Guida ad HTML5: l’elemento canvas, sfumature
- 23-07-2010 Guida ad HTML5: l’elemento canvas, ombreggiature
- 26-07-2010 Guida ad HTML5: l’elemento canvas, compositing (1/2)
- 30-07-2010 Guida ad HTML5: l’elemento canvas, compositing (2/2)
- 30-08-2010 Guida ad HTML5: l’elemento canvas, stili di linea e pattern (1/2)
- 03-09-2010 Guida ad HTML5: l’elemento canvas, stili di linea e pattern (2/2)
- 06-09-2010 Guida ad HTML5: multimedialità, concetti propedeutici (1/2)
- 10-09-2010 Guida ad HTML5: multimedialità, concetti propedeutici (2/2)
- 13-09-2010 Guida ad HTML5: multimedialità, l'elemento video
- 17-09-2010 Guida ad HTML5: multimedialità, gli elementi audio e source
- 20-09-2010 Guida ad HTML5: multimedialità, scripting dei media element (1/6)
- 24-09-2010 Guida ad HTML5: multimedialità, scripting dei media element (2/6)
- 27-09-2010 Guida ad HTML5: multimedialità, scripting dei media element (3/6)
- 01-10-2010 Guida ad HTML5: multimedialità, scripting dei media element (4/6)
- 04-10-2010 Guida ad HTML5: multimedialità, scripting dei media element (5/6)
- 08-10-2010 Guida ad HTML5: multimedialità, scripting dei media element (6/6)
- 11-10-2010 Guida ad HTML5: multimedialità, realizzazione di un player video (1/7)
- 15-10-2010 Guida ad HTML5: multimedialità, realizzazione di un player video (2/7)
- 20-10-2010 Guida ad HTML5: multimedialità, realizzazione di un player video (3/7)
- 22-10-2010 Guida ad HTML5: multimedialità, realizzazione di un player video (4/7)
- 25-10-2010 Guida ad HTML5: multimedialità, realizzazione di un player video (5/7)
- 29-10-2010 Guida ad HTML5: multimedialità, realizzazione di un player video (6/7)
- 05-11-2010 Guida ad HTML5: multimedialità, realizzazione di un player video (7/7)
- 08-11-2010 Guida ad HTML5: storage per le web application (1/3)
- 12-11-2010 Guida ad HTML5: storage per le web application (2/3)
- 15-11-2010 Guida ad HTML5: storage per le web application (3/3)
- 19-11-2010 Guida ad HTML5: eseguire codice JavaScript in background (1/3)
- 22-11-2010 Guida ad HTML5: eseguire codice JavaScript in background (2/3)
- 26-11-2010 Guida ad HTML5: eseguire codice JavaScript in background (3/3)
- 29-11-2010 Guida ad HTML5: applicazioni web offline (1/5)
- 03-12-2010 Guida ad HTML5: applicazioni web offline (2/5)
- 06-12-2010 Guida ad HTML5: applicazioni web offline (3/5)
- 10-12-2010 Guida ad HTML5: applicazioni web offline (4/5)
- 13-12-2010 Guida ad HTML5: applicazioni web offline (5/5)
- 17-12-2010 Guida ad HTML5: la geolocalizzazione (1/4)
- 20-12-2010 Guida ad HTML5: la geolocalizzazione (2/4)
- 24-12-2010 Guida ad HTML5: la geolocalizzazione (3/4)
- 27-12-2010 Guida ad HTML5: la geolocalizzazione (4/4)
- 31-12-2010 Guida ad HTML5: microdata (1/4)
- 03-01-2011 Guida ad HTML5: microdata (2/4)
- 10-01-2011 Guida ad HTML5: microdata (3/4)
- 14-01-2011 Guida ad HTML5: microdata (4/4)
- 17-01-2011 Guida ad HTML5: drag and drop (1/5)
- 21-01-2011 Guida ad HTML5: drag and drop (2/5)
- 24-01-2011 Guida ad HTML5: drag and drop (3/5)
- 28-01-2011 Guida ad HTML5: drag and drop (4/5)
- 31-01-2011 Guida ad HTML5: drag and drop (5/5)
- 04-02-2011 Guida ad HTML5: nuovi elementi semantici (1/6)
- 07-02-2011 Guida ad HTML5: nuovi elementi semantici (2/6)
- 11-02-2011 Guida ad HTML5: nuovi elementi semantici (3/6)
- 14-02-2011 Guida ad HTML5: nuovi elementi semantici (4/6)
- 18-02-2011 Guida ad HTML5: nuovi elementi semantici (5/6)
- 21-02-2011 Guida ad HTML5: nuovi elementi semantici (6/6)
- 25-02-2011 Guida ad HTML5: l’API di messaggistica (1/8)
- 28-02-2011 Guida ad HTML5: l’API di messaggistica (2/8)
- 04-03-2011 Guida ad HTML5: l’API di messaggistica (3/8)
- 07-03-2011 Guida ad HTML5: l’API di messaggistica (4/8)
- 11-03-2011 Guida ad HTML5: l’API di messaggistica (5/8)
- 14-03-2011 Guida ad HTML5: l’API di messaggistica (6/8)
- 18-03-2011 Guida ad HTML5: l’API di messaggistica (7/8)
- 21-03-2011 Guida ad HTML5: l’API di messaggistica (8/8)