Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to draw a line in Python Mayavi?

How to draw a line in 3D space in Python Mayavi? Is there a function from MLAB module that allows me to specify the start and end point of the line which will be drawn?

like image 485
Luka Avatar asked May 11 '12 10:05

Luka


2 Answers

One important feature you can use when drawing lines is to represent them as a tube. The following example I used to draw the X, Y, Z axis along with the 3D figure (note that in my case the dimensions are big, so that you might want to adjust them):

import mayavi.mlab as mlab

black = (0,0,0)
white = (1,1,1)
mlab.figure(bgcolor=white)
mlab.plot3d([0, 1000], [0, 0], [0, 0], color=black, tube_radius=10.)
mlab.plot3d([0, 0], [0, 1500], [0, 0], color=black, tube_radius=10.)
mlab.plot3d([0, 0], [0, 0], [0, 1500], color=black, tube_radius=10.)
mlab.text3d(1050, -50, +50, 'X', color=black, scale=100.)
mlab.text3d(0, 1550, +50, 'Y', color=black, scale=100.)
mlab.text3d(0, -50, 1550, 'Z', color=black, scale=100.)
like image 198
Saullo G. P. Castro Avatar answered Nov 18 '22 06:11

Saullo G. P. Castro


Check the documentation for mayavi; 3d plotting is in the tutorials and documented here. It's part of mlab, mayavi.mlab.plot3d(*args, **kwargs).

The syntax is

plot3d(x, y, z, ...)
like image 23
jmetz Avatar answered Nov 18 '22 07:11

jmetz