如何绘制相交平面?

如何绘制相交平面?,第1张

如何绘制相交平面?
from mpl_toolkits.mplot3d import axes3dimport matplotlib.pyplot as pltimport numpy as npfig = plt.figure()ax = fig.add_subplot(111, projection='3d')dim = 10X, Y = np.meshgrid([-dim, dim], [-dim, dim])Z = np.zeros((2, 2))angle = .5X2, Y2 = np.meshgrid([-dim, dim], [0, dim])Z2 = Y2 * angleX3, Y3 = np.meshgrid([-dim, dim], [-dim, 0])Z3 = Y3 * angler = 7M = 1000th = np.linspace(0, 2 * np.pi, M)x, y, z = r * np.cos(th),  r * np.sin(th), angle * r * np.sin(th)ax.plot_surface(X2, Y3, Z3, color='blue', alpha=.5, linewidth=0, zorder=-1)ax.plot(x[y < 0], y[y < 0], z[y < 0], lw=5, linestyle='--', color='green',        zorder=0)ax.plot_surface(X, Y, Z, color='red', alpha=.5, linewidth=0, zorder=1)ax.plot(r * np.sin(th), r * np.cos(th), np.zeros(M), lw=5, linestyle='--',        color='k', zorder=2)ax.plot_surface(X2, Y2, Z2, color='blue', alpha=.5, linewidth=0, zorder=3)ax.plot(x[y > 0], y[y > 0], z[y > 0], lw=5, linestyle='--', color='green',        zorder=4)plt.axis('off')plt.show()

注意事项:
  • 我正在运行的版本与当前的主版本非常接近,因此我不确定在较旧的版本中将运行什么版本

  • 划分图的原因是,“上方”和“下方”是以某种不可思议的方式确定的(我不完全确定

    zorder
    实际执行任何 *** 作),并且实际上取决于艺术家的绘制顺序。曲面不能相交(一个在每个位置都将在另一个上方),因此您需要分别在相交的两侧绘制剖面。(您可以在黑色线中看到这一点,而在上面的蓝色平面的“上方”,我并没有看到它的样子)。

  • 表面的“正确”排序似乎也取决于视角。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5631383.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存