我试图通过Matplotlib可视化两个球体的合并。
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
r = 10
Init = [0,0,0] ; Final = [5,5,5]
u, v = np.mgrid[0:2 * np.pi:30j, 0:np.pi:20j]
x = Init[0] + r*np.cos(u) * np.sin(v)
y = Init[1] + r*np.sin(u) * np.sin(v)
z = Init[2] + r*np.cos(v)
ax.plot_surface(x, y, z, color = 'r', alpha = 0.5, linewidth=0)
u, v = np.mgrid[0:2 * np.pi:30j, 0:np.pi:20j]
x = Final[0] + r*np.cos(u) * np.sin(v)
y = Final[1] + r*np.sin(u) * np.sin(v)
z = Final[2] + r*np.cos(v)
ax.plot_surface(x, y, z, color = 'r', alpha = 0.5, linewidth=0)
plt.show()
我得到2 spheres接近预期。但是,我想删除两个球体之间的重叠(共享)部分,因此我得到的曲面仅由球体的非重叠部分组成。
Matplotlib中是否有任何功能可以绘制此图?
1条答案
按热度按时间qgzx9mmu1#
这是程序:
d
是线段C1C2
连接它们的中心的距离。[d, 0, 0]
。C1C2
与新参考坐标系x轴的方向。本质上,您需要两次旋转来将C1C2
与新帧的x轴对齐。