Alcuni semplici effetti grafici con Java

   I codici qui proposti sono compatibili con Java 1.1 (cioè con la maggioranza dei browsers in circolazione sul web); certo con i pacchetti Java2D, Swing è possibile realizzare più cose con meno righe di codice, ma non tutti i browsers sopportano completatmente Java2.

Parte di questo materiale è tratto da un articolo di Chunyen Liu; visitate il suo sito.


   Con semplici accorgimenti è possibile arrichire le proprie pagine web. L'effetto di base dei programmi di disegno è l'ombreggiatura:

Nel primo caso (a sinistra) l'ombra sta sopra, come se la luce venisse dal basso, nel secondo caso invece l'ombra sta sotto, come se la luce venisse da sopra. La tecnica per realizzare questi effetti è semplicissima: prima si disegna il rettangolo con un colore scuro (l'ombra), si copia il rettangolo, si cambia il colore e lo si sposta in basso a destra (ombra sopra) o a sinistra in alto (ombra sotto). In termini di coordinate, nel caso dell'ombra sotto, abbiamo:

(la coordinata y aumenta andando verso il basso).

Il codice per realizzare cose simili in Java è:

//ombra sotto:
g.setColor(Color.black);
g.fillRect(x+d, y+d, 20, 30);
g.setColor(Color.green);
g.fillRect(x,y, 20, 30);

//ombra sopra:
g.setColor(Color.black);
g.fillRect(x-d, y-d, 20, 30);
g.setColor(Color.green);
g.fillRect(x,y, 20, 30); 

 Volendo si potrebbero scrivere dei metodi:

public void Rect_sotto(Color dark, Color fg, int x, int y, int d, int w, int h, Graphics g){
g.setColor(dark);
g.fillRect(x+d, y+d, w, h);
g.setColor(fg);
g.fillRect(x,y, w, h);
}

L'istruzione: Rect_sotto(Color.black, Color.green, 10, 10, 2, 20, 30, g);
permette di disegnare un rettangolo verde con angolo sinistro alto in (x,y) = (10, 10) e con la sua ombra in nero "sotto".

Un principio di base per ottenere effetti grafici è quindi di ricopiare una data figura, spostandola di poco e cambiandone il colore.

Una prima applicazione può essere la creazione di pulsanti rotondi, palline, ecc...

Gli stessi principi si applicano alle fonts.




pg 2	pg 3		pg 4		pg 5
altro