2013-05-12 4 views
0

Можете ли вы дать пример кода дляPython: Непрерывное дополнение к 3D-сцены в цикле

  1. сначала нарисовать поверхность
  2. затем нарисуйте случайные линии в цикле. Между рисунком каждой линии, немного времени тратится впустую, чтобы создать впечатление анимации.

Код должен работать как от ipython, так и от pydev.

+0

Вы можете уменьшить это вниз к примеру, мы можем проверить? Это выглядит правильно на первый взгляд, но есть слишком много вещей, которые я должен угадать, чтобы даже попытаться выяснить, что не так. – tacaswell

+0

@tcaswell Я опубликовал полный сценарий, как вы видите. В mlab, хотя. Но мне все равно понравится версия mplot3d. – ozi

ответ

0

Один ответ, используя mayavi ниже:

import numpy as np 
from mayavi import mlab 
import time 
from tvtk.tools import visual 


# # prepare surface data 
rng = 20 
step = 1 
X = np.arange(0, rng, step) 
Y = X 
Z = np.random.uniform(-1, 0, (rng, rng)) 

# # draw the surface 
fig = mlab.figure(size=(500, 500), bgcolor=(1, 1, 1)) 
visual.set_viewer(fig) 
s = mlab.surf(X, Y, Z) 
mlab.axes(color=(0, 0, 0)) 
mlab.view(40, 40) 
mlab.outline() 

for i in xrange(5): 
    # # sleep a little to give the impression of animation 
    time.sleep(1) 
    # # get coordinates of two random points 
    p1 = np.random.uniform(0, 10, (3,)) 
    p2 = np.random.uniform(0, 10, (3,)) 
    line = np.vstack((p1, p2)) 
    x, y, z = (line[:, dim] for dim in xrange(3)) 

    # # connect points 
    mlab.plot3d(x, y, z, figure=fig, tube_radius=.05, colormap='Greens') 

mlab.show() 

 Смежные вопросы

  • Нет связанных вопросов^_^