Effetti sulle Bitmap con perlinNoise()
Lunedì 2 Giugno, 2008La classe BitmapData permette di applicare in modo semplice effetti utilissimi per svariati scopi. Avevamo già visto come creare un effetto "nebbia tv" con poche righe di codice (Flash CS3: creare effetto nebbia TV in 1 secondo). Ora ci occuperemo di un altro effetto "spettacolare" che, come vedremo in seguito, permette di realizzare degli interessantissimi effetti grafici, come nell'esempio mostrato qui sotto: variate i parametri per osservare i differenti effetti, cliccando con il mouse sull'immagine generata questa può essere spostata.
Per l'occasione ho anche aggiunto un nuovo semplice componente (Check) in Undolibrary! Quindi aggiornate il vostro repository SVN. Il sorgente è disponibile qui: MapEffect.zip
L'effetto mostrato nel filmato di sopra viene interamente realizzato sfruttando il metodo perlinNoise() messo a disposizione dall'oggetto BitmapData. Come indicato nel manuale:
L'algoritmo di generazione del disturbo Perlin interpola e combina singole funzioni di disturbo casuale (definite ottave) in un'unica funzione che genera un disturbo casuale dall'aspetto più naturale.
E ancora:
Le funzioni di disturbo Perlin possono essere utilizzate per simulare fenomeni naturali e paesaggi, come la trama del legno, le nuvole e le catene montuose.
Potete utilizzare il filmato dimostrativo per vedere come cambia l'immagine generata in base ai suoi parametri principali. Nel filmato non ho permesso la modifica del parametro randomSeed, un numero utilizzato per la generazione del pattern randomico (questo per permettere uno scroll continuo dell'immagine - cliccate con il mouse sull'immagine e trascinatela).
Sorgente
La classe documento MapEffect contiene tutto il codice della dimostrazione, tuttavia il cuore dell'applicazione è racchiuso nel metodo doPerlinNoise():
-
/*
-
** @name : doPerlinNoise()
-
*/
-
protected function doPerlinNoise():void {
-
var p:Point = new Point(__translateX, __translateY);
-
__bmpd.perlinNoise(__mapWidth, __mapHeight, __octave, __seed, __transuni, __fractal, BitmapDataChannel.GREEN, true, [p,p,p]);
-
}
__bmpd è un puntatore ad un oggetto BitmapData, che viene poi visualizzato tramite l'oggetto "grafico" Bitmap (__bmp). Tutti i parametri della chiamata a perlinNoise() sono parametrici, tranne - come accennato prima - __seed (questo può essere un valore a piacere).
Vedi anche...
- 03.09.08: Actionscript 3.0 for beginners: lesson #2 (0)
- 31.08.08: jQuery restyling (0)
- 28.08.08: WP-ABS: aggiornamento release 1.1 (3)
- 27.08.08: Very short snippet: inviare email in HTML con PHP (0)
- 26.08.08: Skypemote.com: dillo con le emotions (4)


















Lascia un commento