Le
forme geometriche possono essere riempite non solo con colori solidi, ma anche con delle sfumature (gradienti), ovvero con la combinazione di due o più colori, che consentano di creare degli effetti di transizione del colore risultante. In HTML5 possiamo creare:
sfumature lineari, dove un colore parte da un punto iniziale e, procedendo in linea retta, si modifica fino a un punto finale;
sfumature radiali dove un colore parte da un punto iniziale e, procedendo lungo il raggio di un cerchio, si modifica fino al punto finale.
Per creare i
gradienti abbiamo a disposizione le seguenti funzioni, che ritorneranno un oggetto di tipo
CanvasGradient, il quale potrà essere passato come valore alle funzioni
fillStyle, o
strokeStyle:
- createLinearGradient(x_point0, y_poiny0, x_point1, y_point1), con cui creiamo un gradiente, disegnato lungo una linea, che parte dal punto indicato dalle coordinate fornite dai parametri x_point0, y_point_0, e termina al punto indicato dalle coordinate fornite dai parametri x_point1, y_point1;
- createRadialGradient(start_circle_x, start_circle_y, start_circle_radius, end_circle_x, end_circle_y, end_circle_radius), con cui creiamo un gradiente, disegnato lungo una sorta di cono tra due cerchi, che inizia con il cerchio di partenza, fornito dai parametri start_circle_x, start_circle_y, con raggio fornito dal parametro start_circle_radius e termina con il cerchio finale, fornito dai parametri end_circle_x, end_circle_y, con raggio fornito dal parametro end_circle_radius.
Per definire invece i
colori, che costituiranno la sfumatura, dobbiamo utilizzare la seguente funzion,e invocata su un oggetto di tipo
CanvasGradient:
- addColorStop(offset, color), con cui creiamo un colore che farà parte della sfumatura. Il parametro offset indica la posizione del colore nella sfumatura e può assumere valori che vanno da 0 (inizio del gradiente) a 1 (fine del gradiente). Tra il valore 0 e il valore 1 possiamo porre valori intermedi espressi in decimali (es. 0.1, 0.5 ecc.). Il parametro color indica il valore del colore, espresso come tipo stringa e nel formato colore CSS.
Vediamo uno snippet che crea all’interno del canvas un rettangolo e un cerchio riempiti il primo con una sfumatura lineare e il secondo con una sfumatura radiale:
if (context && context.createLinearGradient && context.createRadialGradient)
{ // creo un oggetto CanvasGradient lineare
var linear_canvas_gradient = context.createLinearGradient(0, 0, 250, 150);
// aggiungo i colori della sfumatura
linear_canvas_gradient.addColorStop(0, "red");
linear_canvas_gradient.addColorStop(1, "yellow");
// fillStyle di tipo gradiente
context.fillStyle = linear_canvas_gradient;
// disegno il rettangolo
context.fillRect(0, 0, 250, 150);
// creo un oggetto CanvasGradient radiale
var radial_canvas_gradient = context.createRadialGradient(450, 100, 0, 400, 150, 100);
// aggiungo i colori della sfumatura
radial_canvas_gradient.addColorStop(0, "white");
radial_canvas_gradient.addColorStop(0.5, "brown");
radial_canvas_gradient.addColorStop(1, "black");
// fill style di tipo gradiente
context.fillStyle = radial_canvas_gradient
// creo un cerchio
context.beginPath();
context.arc(400, 150, 100, 0, Math.PI * 2, false);
context.fill();
}
Il risultato dell'esecuzione del codice è visualizzato dalla seguente immagine:
- 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
- 14-06-2010 Guida ad HTML5: l’elemento canvas, disegno di forme geometriche (1/4)
- 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)
- 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)