import numpy as np
from mayavi import mlab

#rjedja i gusca mreza pokazati
x, y, z = np.mgrid[0:np.pi:20j, 0:np.pi:20j, 0:np.pi:20j]

u=x*np.cos(z)
v=-y*np.cos(z)
w=np.sin(z)

#mlab.options.backend = 'envisage'
mlab.figure(bgcolor=(0.2,0.2,0.2), size=(800, 600))

#prvi
mlab.quiver3d(u,v,w, colormap='blue-red', 
           line_width=4.0, mode='arrow', resolution=20)
mlab.outline(color=(1,1,1))


#drugi (obojaj ravninu)
#~ polje=mlab.pipeline.vector_field(u,v,w)
#~ mlab.pipeline.vectors(polje, mask_points=20, scale_factor=2.0, mode='arrow',resolution=20)
#~ mlab.pipeline.vector_cut_plane(polje,scale_factor=3.0,mode='arrow',resolution=20,mask_points=2)


#duljina vektorskog polja
#~ polje=mlab.pipeline.vector_field(u,v,w)
#~ duljina=mlab.pipeline.extract_vector_norm(polje)
#~ mlab.pipeline.iso_surface(duljina, contours=[1,2,3,4])

#integralne krivulje
#mlab.flow(u, v, w, colormap='Set1',integration_direction='both',linetype='line',line_width=0.5)

mlab.show()