::introtext::
Questo Programma, che ho scritto per studio e ricerca, rientra nella categoria della "Generative Art" ovvero algoritmi scritti per generare immagini nelle arti visive digitali.
Potete usarlo in modo interattivo nel riquadro sottostante.
Nel seguito del post, una rapida guida all'uso del programma e la descrizione del modello matematico e del codice.
::/introtext::::fulltext::
Rapida Guida agli oggetti interattivi del programma:
Nota: gli oggetti mostrano la loro icona (rappresentata da una ellisse e una descrizione) quando passate il mouse sopra e la nascondono quando spostare gli oggetti o osservate il disegno creato.
L'oggetto principale è il generatore di Onde, appare al centro della finestra ma potete spostarlo con il mouse. E' facile vederlo perché è il primo oggetto che emette le onde colorate.
Esistono altri due oggetti che non emettono onde ma le "distorcono". Li ho chiamati "Lente Gravita" che genera un effetto di lente gravitazionale in quanto attira i raggi sul bordo dell'area e li repelle nel centro, e L'altro "Attrattore" che attira verso il centro i raggi. Nelle figure seguenti li potete vedere quando ci passate sopra con il mouse, si trovano nella finestra del programma e li riconoscerete per l'effetto che generano sui raggi. Con il Mouse potere strascinarli nella finestra e osservare l'effetto che hanno sull'immagine.
Se li sovrapponete i loro effetti si contrastano creando disegni differenti.
Versione con un ulteriore oggetto: "Repulsore sui bordi" lo potete lanciare da qui: istanza "ONDA ELETTRONICA CON BORDI A 100 PIXEL"
Descrizione Algoritmo.
Il modello matematico implementato è molto semplice. L'idea è di generare un raggio colorato dalla posizione x,y che si proietta verso una direzione definita da un angolo 'a'.
Tale angolo viene generato in modo continui da 0 a 4PI e il raggio invece di essere una semplice linea connessa da due vertici e una curva connessa da un certo numero di vertici che si animano seguendo il seguente modello matematico:
Ogni vertice è spostato nel vettore direzione definito da 'a' di un certo 'step' e shiftato in funzione di un valore di "phase" che viene generato in modo "casuale morbido" ovvero usando il metodo di Perlin Noise.
I valori di colore sono allocati usando il modello "luminosita,saturazione,blillantezza,alfa" e varinao in funzione della phase. Le classi che ho scritto per questo programma sono le seguenti:
public Class EmettitoreRaggiElettronici
public Class RaggioElettronico
public abstract class Attrattore
public class MouseAttractor extends Attrattore
public class LenteGravitaAttractor extends MouseAttractor
public class InverseAttractorFrameBorder extends Attrattore
Questo attrattore è in realtà un repulsore ovvero un attrattore all'inverso e lo uso per controllare che i raggi restino dentor i limiti della finestra del programma.
Nell'istanza precedento non l'ho abilitata ma potete vederla in esecuzione in questa istanza "ONDA ELETTRONICA CON BORDI A 100 PIXEL". Provate a spostare l'emettitore verso i bordi per notare che i raggi restano entro i 100 pixel dai bordi e cambiano la loro phase diventando simili a stringhe di plasma elettrico.
::/fulltext:: ::cck::72::/cck::
Comments powered by CComment