def render(self, _interactive=True): """ """ mv = Plotter( N=2, axes=4 if brainrender.SHOW_AXES else 0, size="full" if brainrender.WHOLE_SCREEN else "auto", pos=brainrender.WINDOW_POS, bg=brainrender.BACKGROUND_COLOR, sharecam=True, ) actors = [] for scene in self.scenes: scene.apply_render_style() actors.append(scene.actors) mv.add(scene.actors) mv.show( actors[0], at=0, zoom=1.15, axes=4 if brainrender.SHOW_AXES else 0, roll=180, interactive=False, ) mv.show(actors[1], at=1, interactive=False) if _interactive: interactive()
def render(self, _interactive=True, **kwargs): """ :param _interactive: (Default value = True) :param **kwargs: """ camera = kwargs.pop("camera", None) for scene in self.scenes: scene.apply_render_style() if camera is None: if scene.atlas.default_camera is None: scene_camera = brainrender.CAMERA else: scene_camera = scene.atlas.default_camera else: if camera: scene_camera = camera else: scene_camera = None if scene_camera is not None: set_camera(scene, scene_camera) mv = Plotter( N=self.N, axes=4 if brainrender.SHOW_AXES else 0, size="full" if brainrender.WHOLE_SCREEN else "auto", sharecam=True, bg=brainrender.BACKGROUND_COLOR, ) actors = [] for i, scene in enumerate(self.scenes): scene.apply_render_style() actors.append(scene.actors) mv.add(scene.actors) for i, scene.actors in enumerate(actors): mv.show(scene.actors, at=i, interactive=False) print("Rendering complete") if _interactive: interactive()
for t_interval in range(int(T / output_int)): for it in range(output_int): t = t_interval * output_int + it #print('\r', "t=", t, end='') #print("t=", t) take_step(d_X, N) print('\r', "t=", t, end='') out_X = d_X.copy_to_host() pol = arr_pol_to_float3(out_X[:, 3:5]) coords_t.append(out_X[:, :3]) pol_t.append(pol) #print('\r', "DONE", t, end='') ####################################################################### from vedo import Box, Spheres, Arrows, show, interactive world = Box(pos=(1, 1, 0), size=(10, 10, 4), alpha=1).wireframe() for t in range(len(coords_t)): cells = Spheres(coords_t[t], c='b', r=0.4) polarities = Arrows(startPoints=coords_t[t], endPoints=coords_t[t] + pol_t[t], c='tomato') show(world, cells, polarities, interactive=0, viewup='z') interactive()
sy, sx = V.shape grd = Grid(sx=sx, sy=sy, resx=sx, resy=sy) grd.lineWidth(0).wireframe(False).lighting(ambient=0.5) formula = r'(u,v)=(D_u\cdot\Delta u -u v v+F(1-u), D_v\cdot\Delta v +u v v -(F+k)v)' ltx = Latex(formula, s=15, pos=(0,-sy/1.9,0)) print('Du, Dv, F, k, name =', Du, Dv, F, k, name) settings.useDepthPeeling = False for step in range(Nsteps): for i in range(25): Lu = ( U[0:-2, 1:-1] + U[1:-1, 0:-2] - 4*U[1:-1, 1:-1] + U[1:-1, 2:] + U[2: , 1:-1]) Lv = ( V[0:-2, 1:-1] + V[1:-1, 0:-2] - 4*V[1:-1, 1:-1] + V[1:-1, 2:] + V[2: , 1:-1]) uvv = u*v*v u += Du*Lu - uvv + F*(1-u) v += Dv*Lv + uvv - (F+k)*v grd.cmap('ocean_r', V.ravel(), on='cells', arrayName="escals") grd.mapCellsToPoints() newpts = grd.points() newpts[:,2] = grd.getPointArray('escals')*25 # assign z grd.points(newpts) # set the new points plt = show(ltx, grd, zoom=1.25, elevation=-.15, bg='linen', interactive=False) if plt.escaped: break # if ESC is hit during loop interactive().close()
Cx[2], Cy[2] = p[1].real * 1j, p[1].imag * 1j Cx[3], Cy[3] = p[2].real, p[2].imag * 1j Cx[5] = p[3].real x = np.append(fourier(t, Cy), [p[4].imag]) y = -np.append(fourier(t, Cx), [-p[4].imag]) return np.array([x, y]) # draw the body of the elephant ele = elephant(np.linspace(0.4 + 1.3 * np.pi, 2 * np.pi + 0.9 * np.pi, 100), p) body = vedo.Line(ele.T).tomesh().lw(0).c('r4') plt = vedo.show(body, __doc__ + str(p), zoom=0.8, axes=1, interactive=False) ltrunk = None # wiggle trunk #vd = vedo.Video() for i in range(50): trunk = elephant( np.linspace(2 * np.pi + 0.9 * np.pi, 0.4 + 3.3 * np.pi, 500), p) x, y = trunk for ii in range(len(y) - 1): y[ii] -= np.sin( ((x[ii] - x[0]) * np.pi / len(y))) * np.sin(float(i)) * p[4].real plt.remove(ltrunk) # remove old trunk before drawing at new position ltrunk = vedo.Line(trunk.T).lw(6).c('r3') plt.add(ltrunk) #vd.addFrame() #vd.close() vedo.interactive()