Echtzeit-Fluid-Dynamik mit ActionScript 3
| abgelegt unter: Flash-Beispiele, ActionScript 3Implementierung eines Echtzeit-Fluid-Generators nach dem Verfahren von Jos Stam.
Diesem Artikel liegen Jos Stam's Veröffentlichungen "Stable Fluids" und "Real-Time Fluid Dynamics for Games" zugrunde, beide zu finden unter http://www.dgp.toronto.edu/people/stam/reality/Research/pub.html . In "Real-Time Fluid Dynamics for Games" beschreibt Jos Stam die Implementierung seines Algorithmus in C, den "fluid dynamics solver for game engines" . Der vollständige C Quellcode liegt auf Stam's WebSite ebenfalls zum Download bereit. Das Flash-Demo-Programm ist einem Processing-Beispiel unter Verwendung dieses Algorithmus nachempfunden.
/******************************
* adding source to density
*/
protected function add_source ( x:Vector.<Number>, s:Vector.<Number> ):void
{
var i:int;
for ( i=0 ; i, x0:Vector. ):void
{
var i:int, j:int, k:int;
var a:Number=dt*diff*Ny*Nx;
var idx:int;
for ( k=0 ; k<10 ; k++ ) {
for ( j=1 ; j<=Ny ; j++ ) {
idx=IX(1,j);
for ( i=1 ; i<=Nx ; i++ ) {
x[idx] = (x0[idx] + a*(x[idx-1]+x[idx+1]+x[idx-Nx2]+x[idx+Nx2]))/(1+4*a);
idx++;
};
};
set_bnd ( b, x );
}
}
