Re: Plotting a function dynamically in a loop
- To: mathgroup at smc.vnet.net
- Subject: [mg112908] Re: Plotting a function dynamically in a loop
- From: "Nasser M. Abbasi" <nma at 12000.org>
- Date: Tue, 5 Oct 2010 05:36:43 -0400 (EDT)
- References: <i8c8ub$g9p$1@smc.vnet.net>
- Reply-to: nma at 12000.org
On 10/4/2010 3:06 AM, ABHIJIT BHATTACHARYYA wrote: > Hi! > > Let us consider that I have one 3D array ex[[i,j,k]] which is computed > in time loop as given here. > > alfa=0.3; beta=0.4; gamma== 0.5;=0A For[time=0, time<= maxtime, time++, > Do[ex[[i,j,k]] = alfa*i+beta*j+gamma*k, {i,1,imax}, {j,2,jmax+1},{k,1,kmax}] > > (* Plot ex[[]]= dynamically *) > ] > > What I want is that I like to plot ex[[i,j,k]] at every time step in a single plot so that plot is revealed as a movie. Is it possible in > mathematica? > > Regs > Abhijit Bhattacharyya And here is a bouncing ball simulation I wrote sometime ago. Not sure now if this is the best way to do these thing, but it might be of help ----- bouncing ball -------- x = RandomReal[{-0.9, 0.9}]; y = RandomReal[{-0.9, 0.9}]; r = 0.1; g = Disk[{x, y}, r]; Dynamic[Refresh[ Graphics[g, ImageMargins -> 0, Frame -> True, ImagePadding -> 1, PlotRangeClipping->False, PlotRange->1], UpdateInterval -> $TimeUnit, TrackedSymbols -> {g} ], SynchronousUpdating -> True ] simulationTime = 1000; dx = 0.01; dy = 0.01; (* run the simulaltion *) For[k = 1, k <= simulationTime, k++, {g = Disk[{x += dx, y += dy}, r]; FinishDynamic[]; (*to eliminate flicker*) If[Abs[x] >= 0.9, dx = -dx]; If[Abs[y] >= 0.9, dy = -dy]; Pause[$TimeUnit*2] } ] ---------------------------- --Nasser