Python: как я могу построить общий 3D-объект, если у меня есть x, y и z как функции некоторых параметров?

Например, для единичной сферы имеем

x = cos(phi)sin(theta)
y = sin(phi)sin(theta)
z = cos(theta)

Я хотел бы просто построить набор точек, где фи и тета находятся в интервалах [0, 2*pi] и [0, pi] соответственно.

Есть ли способ сделать это в общем случае, то есть указать

  • x,y,z как функции некоторых параметров, и
  • Диапазоны этих параметров

а затем получить 3D-график этого?


person ahura    schedule 18.06.2014    source источник


Ответы (1)


Я думаю, что что касается Mayavi, вы всегда будете зацикливаться на создании некоторых сеток самостоятельно и построении полученных точек данных... Однако это не должно быть слишком громоздким при использовании numpy :

from numpy import pi, sin, cos, mgrid
[phi,theta] = mgrid[0:2*pi:100j,0:pi:100j]  # 100 is the amount of steps in the respective dimension
x = cos(phi)*sin(theta)
y = sin(phi)*sin(theta)
z = cos(theta)

from mayavi import mlab
s = mlab.mesh(x, y, z)
mlab.show()
person MultiVAC    schedule 18.06.2014