1

我希望在 3D中有两个扇区(一个是蓝色,另一个是黑色铅笔),并且它们在平面上共享相同的顶点。黑色铅笔位于平面上,而蓝色铅笔位于平面上方。

我期待的效果如图所示。

在此处输入图像描述

如果我也可以将三个角度标记出来,那就太好了。

我试过的:

from matplotlib.patches import Wedge
from matplotlib.collections import PatchCollection
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
fig = plt.figure()
ax = Axes3D(fig)
patches = []
patches.append(Wedge((.8,.3), .2, 0, 45))
p = PatchCollection(patches)
ax.add_collection3d(p)
plt.show()
4

1 回答 1

2

您最终会遇到的问题是 matplotlib 3d 只是形状的投影,并不会尝试在 3d 中渲染对象。

在这篇文章中这是可能的并且得到了很好的证明,但我建议您从@Lileth 的答案中运行代码,以查看投影限制您的位置。

存在替代方案,例如:

  • 可以使用Mayavimesh() ,为形状定义两个数组。

  • 如果您熟悉 Latex,Tikz能够生成出色的 3D 图,但学习曲线非常陡峭 - 通常最好选择最接近您想要的示例并破解而不是从头开始。

于 2013-09-03T08:00:11.547 回答