Exemplo n.º 1
0
# Form a surface by joining two lines.
#
from vtkplotter import Plotter, arange, sin, cos

vp = Plotter()

l1 = [ [sin(x),     cos(x),      x/2] for x in arange(0,9, .1)]
l2 = [ [sin(x)+0.2, cos(x)+x/15, x/2] for x in arange(0,9, .1)]

vp.tube(l1, c='g', r=0.02)
vp.tube(l2, c='b', r=0.02)

vp.ribbon(l1, l2, alpha=.2, res=(200,5), legend='ruled surf').wire(1)

vp.show(viewup='z')
Exemplo n.º 2
0
vp = Plotter(interactive=0, axes=2, verbose=0)
vp.xtitle = ''
vp.ytitle = 'Psi^2(x,t)'
vp.ztitle = ''

bck = vp.load('data/images/schrod.png').scale(0.012).pos([0, 0, -.5])
barrier = vp.line(list(zip(x, V * 15)), c='dr', lw=3)

lines = []
for j in range(200):
    for i in range(500):
        Psi += d_dt(Psi) * dt  # integrate for a while

    A = np.real(Psi * np.conj(Psi)) * 1.5  # psi squared, probability(x)
    coords = list(zip(x, A, [0] * len(x)))
    Aline = vp.tube(coords, c='db', r=.08)
    vp.show([Aline, barrier, bck])
    lines.append(Aline)

# now show the same lines along z representing time
vp.clear()
vp.camera.Elevation(20)
vp.camera.Azimuth(20)

for i, l in enumerate(lines):
    p = [0, 0, 20 * i / len(lines)]  # shift along z
    vp.render([l.pos(p), barrier.clone().pos(p)], resetcam=True)

vp.show(interactive=1)