我们怎样才能制造以给定坐标(x,y,z)为中心的半径为R的球体?就像如果有10组坐标用于球体的中心和相应的10个不同的半径值。我们如何在python中绘制它?在Python中有没有什么方法可以做到这一点,就像在MATLAB中一样,这可以使用surf命令来完成。在Python中,我们如何做到这一点?
ghhkc1vu1#
这会解决你的问题
from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np list_center = [(1,2,3),(-4,-5,6), (5,5,6)] list_radius = [1,2,1] def plt_sphere(list_center, list_radius): for c, r in zip(list_center, list_radius): ax = fig.add_subplot(projection='3d') # draw sphere u, v = np.mgrid[0:2*np.pi:50j, 0:np.pi:50j] x = r*np.cos(u)*np.sin(v) y = r*np.sin(u)*np.sin(v) z = r*np.cos(v) ax.plot_surface(x-c[0], y-c[1], z-c[2], color=np.random.choice(['g','b']), alpha=0.5*np.random.random()+0.5) fig = plt.figure() plt_sphere(list_center, list_radius)
1条答案
按热度按时间ghhkc1vu1#
这会解决你的问题