Exemplo n.º 1
0
    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()
Exemplo n.º 2
0
    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()
Exemplo n.º 4
0
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()
Exemplo n.º 5
0
    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()