Programmazione

Sezione sulla programmazione Object Oriented in C++, C#, e Java

Questo programma simula la dinamica di un fluido non comprimibile. Nel Fluido agiscono delle forze di velocità (implementate da un campo di flusso) che alimentano delle correnti interne al fluido. Tali forze possono essere generate dall'utente muovendo il mouse nel fluido o da degli emettitori che possono essere aggiunti a piacere dall'utente.

Il simulatore, (ancora in pre beta e verrà aggiornato) mostra l'effetto che le correnti hanno su un colorante che l'utente può aggiungere nel fluido e vederlo diluirsi e spostarsi nel fluido in funzione della densità, della viscosità e di altre caratteristiche.

Ho scritto sia il codice della simulazione che traduce il modello matematico (i link ai modelli matematici e agli articoli scientifici usati sono in coda a questo post) in un algoritmo funzionante scritto in Java e eseguibile anche direttamente sul web (vedi seguito per usare il simulatore direttamente nel browser)

Ho implementato anche il codice per consentire all'utente di interaggire con la simulazione usando sia il mouse che comandi testuali. A tal scopo ho creato una classe apposita che implementa una console testuale che può essere anche usata in altri progetti (in seguito farò un post solo per la console).

Ho inoltre implementato anche diversi dipi di renderizzatori, usando il polimorfismo del linguaggio Java ho progettato una interfaccia RenderizzatoreFluido che le classi che vogliono renderizzare il fluido devono implementare (vale lo stesso anche per i ModificatoriFluido). Quelle che ho creato consentono di disegnare:

1) il colorante che si diluisce nel fluido animandosi seguendo le correnti generate sia dall'utente che da emettitori draggabbili

2)le correnti stesse sotto forma di vettori orientati nel verso della velocità del campi di fluisso che governa il fluido

2.5)le correnti visualizzate in modo raster dove il colore giallo è il massimo della velocita, e miscelazioni di colore particolari rendono graficamente l'effetto delle onde di propagazione delle forze nel fluido

3)un renderizzatore artistico mostra il colorante sotto forma di retino

Pagina 1 di 2

© 2018 sito prototipale studio di GiuseppeGi