3

如何使用 Python 在一个图中生成一堆球体和椭圆?理想情况下,它只需要设置每个对象的端点(或半径/轴)和颜色,就像您如何使用端点轻松生成矩形/圆一样。

我在想象使用 matplotlib 的 3-D 模块之类的东西,一旦输出,您就可以在其中旋转和播放绘图。不过,我愿意使用其他库!

我可以通过操纵和绘制一堆椭球方程来将方程绘制为曲面,但是有没有更简单的解决方案?

4

2 回答 2

3

VPython可能是在屏幕上显示一些球体和椭球体的最快途径。此外,VPython 比 matplotlib 更具交互性(从某种意义上说,您可以旋转、缩放等),而且非常容易上手。最后,这取决于你在寻找什么。有很多方法可以在屏幕上显示球体和椭球体。

from visual import *
myell = ellipsoid(pos=(x0,y0,z0), length=L, height=H, width=W) 

在此处输入图像描述

ball = sphere(pos=(1,2,1), radius=0.5)

在此处输入图像描述

于 2013-03-15T03:11:00.830 回答
1

您是否正在寻找未包含在matplotlib'smpl_toolkits.mplot3d模块中的功能?来自3D Surface 演示

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100)

x = 10 * np.outer(np.cos(u), np.sin(v))
y = 10 * np.outer(np.sin(u), np.sin(v))
z = 10 * np.outer(np.ones(np.size(u)), np.cos(v))
ax.plot_surface(x, y, z, rstride=4, cstride=4, color='b')

plt.show()

我看不出有什么理由不能在同一字段中定义另一个形状:

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100)

x = 10 * np.outer(np.cos(u), np.sin(v))
y = 10 * np.outer(np.sin(u), np.sin(v))
z = 10 * np.outer(np.ones(np.size(u)), np.cos(v))
x1 = 7 + 10 * np.outer(np.cos(u), np.sin(v))
y1 = 7 + 10 * np.outer(np.sin(u), np.sin(v))
z1 = 7 + 10 * np.outer(np.ones(np.size(u)), np.cos(v))

ax.plot_surface(x, y, z, rstride=4, cstride=4, color='b')
ax.plot_surface(x1, y1, z1, rstride=4, cstride=4, cmap=cm.coolwarm)

plt.show()
于 2013-03-15T03:03:55.570 回答