Ho un algoritmo per generare onde su una riga orizzontale che rappresenta un piano d'acqua.
L'effetto è ben noto e qui ce n'è un esempio: http://www.ultrashock.com/tutorials/flash8/wave.php
Il cuore dell'algoritmo che uso è questo:
codice:
static inline float
diffuse(float diff, float damp, float prev, float curr, float next){
return (curr*diff + ((prev + next)*0.5f)*(1.0f - diff))*damp;
}
La funzione viene applicata a tutti i punti che formano la linea in modo che il punto correntemente analizzato venga valorizzato in base al precedente e al successivo.
Ho bisogno di cambiare l'algoritmo in modo che le onde generate scorrino verso sinistra o verso destra come se si stesse guardando un flusso d'acqua in movimento. Se generiamo un'onda in un fiume che scorre veloce buttando un sasso davanti a noi questa si propagherà intorno al punto d'impatto del sasso ma, nel suo insieme, si sposterà velocemente in direzione del corso del fiume.
Io ho bisogno di simulare questo spostamento delle onde potendone anche controllare la velocità, che dovrà aderire alla velocità dell'acqua in quel particolare momento.
Ho provato a spostare i valori dei punti dell'array in modo che la loro posizione all'interno di esso segua la direzione delle onde, funziona ma non mi da la possibilità di regolarne la velocità vsto che questa è determinata solo dalla posizione che il vertice dell'onda ha, via via, nell'array.
Cerco un qualunque consiglio! Grazie!