FUNCTION CIRCLE_, xcenter, ycenter, radius points = (2 * !PI / 99.0) * FINDGEN(100) x = xcenter + radius * COS(points ) y = ycenter + radius * SIN(points ) RETURN, TRANSPOSE([[x],[y]]) END pro solid_object_visualize,ncylinders,n_steps,obj,tmin,tmax,startparam,xpos,$ ypos,radius,oneradius,png,w,psym,xp,yp,Stokes=Stokes,$ r_i=r_i,i=i,solid_object=solid_object for i=0,n_steps-1 do begin ; ; Check if we want to plot for this time ; if ((obj.t[i] gt tmin) and (obj.t[i] lt tmax)) then begin titlestring='t='+str(obj.t[i]) if (startparam.coord_system eq 'cylindric') then begin xpp=xp(*,i)*cos(yp(*,i)) ypp=xp(*,i)*sin(yp(*,i)) plot,xpp,ypp,psym=psym,symsize=1,/iso,title=titlestring POLYFILL, CIRCLE_(xpos, $ ypos, $ radius),color=122 endif else begin if (oneradius eq 0) then begin plot,xp(*,i),yp(*,i),psym=psym,symsize=1,/iso,$ title=titlestring endif else begin titlestring=titlestring+',St='+String(Stokes[r_i],$ format='(F4.2)') rad_indices = where(float(obj.ap[*,i]) eq $ float(startparam.ap0[r_i])) n_particles = n_elements(rad_indices) if (i eq 50) then print, 'n_particles = ', n_particles if (n_particles gt 1) then begin plot,xp(rad_indices,i),yp(rad_indices,i),$ psym=psym,symsize=1,/iso,title=titlestring endif endelse if (solid_object) then begin for icyl=0,ncylinders-1 do begin POLYFILL, CIRCLE_(xpos[icyl], $ ypos[icyl], $ radius[icyl]),color=122 end end endelse ; ; Do we want to write png files or to show results on screen ; if png eq 1 then begin store_png_frame,i endif else begin wait,w endelse endif end END