Один ответ, используя 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()
Вы можете уменьшить это вниз к примеру, мы можем проверить? Это выглядит правильно на первый взгляд, но есть слишком много вещей, которые я должен угадать, чтобы даже попытаться выяснить, что не так. – tacaswell
@tcaswell Я опубликовал полный сценарий, как вы видите. В mlab, хотя. Но мне все равно понравится версия mplot3d. – ozi