如何获取球体的坐标?

0 投票
1 回答
1243 浏览
提问于 2025-04-18 13:03

我想知道这个图的所有坐标:

这里输入图片描述

来源: http://matplotlib.org/examples/mplot3d/surface3d_demo2.html

这里输入图片描述

来源: https://stackoverflow.com/a/11156353/3755171

并把它画成一个点的球体(只考虑其中一个,我找不到那种):

这里输入图片描述

或者矩阵也可以。

当我尝试绘制上面提到的图时,我得到了:

这里输入图片描述

我的代码

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')
ax = Axes3D(fig)

u, v = np.mgrid[0:2*np.pi:20j, 0:np.pi:10j]
x=np.cos(u)*np.sin(v)
y=np.sin(u)*np.sin(v)
z=np.cos(v)
#ax.plot_wireframe(x, y, z, color="r")

#ax.plot_surface(x, y, z,  rstride=4, cstride=4, color='b')
ax.plot(x,y,z,"o")

plt.show()

1 个回答

2

如果你把调用 plot 的地方换成 scatter,就可以重新创建一个完全由点组成的球体。详细信息可以查看文档 这里

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')
ax = Axes3D(fig)

u, v = np.mgrid[0:2*np.pi:20j, 0:np.pi:10j]
x=np.cos(u)*np.sin(v)
y=np.sin(u)*np.sin(v)
z=np.cos(v)
#ax.plot_wireframe(x, y, z, color="r")

#ax.plot_surface(x, y, z,  rstride=4, cstride=4, color='b')
ax.scatter(x,y,z,"o")

plt.show()

Image

撰写回答