python绘制3d图形,python做3d动画

  python绘制3d图形,python做3d动画

  我正在寻找动画我的图形(下面)和我不确定从何处或如何开始,因为我没有动画经验。我不知道它是如何工作的,也不知道代码的结构应该是什么,所以如果有人能提供一个伪代码或一个算法,我将非常感激。我也提供了我用来绘制下图的代码。在在此输入代码

  来自scipy.integrate导入odeint

  将科学计算导入为(同science)科学

  将数组作为铭牌导入

  将matplotlib.pyplot作为血小板计数导入

  从mpl_toolkits.mplot3d导入Axes3D

  将matplotlib.animation作为犀鹃导入

  #万有引力常数。

  G=6.674e-11

  #定义质量

  m1=2

  m2=3.5

  m3=2.3

  图形中的初始位置数(数组)

  pos1=[-5,0,1]

  pos2=[5,0,10]

  pos3=[0,1,3]

  p01=np.array(pos1)

  p02=np.array(pos2)

  p03=np.array(pos3)

  #初始速度(数组)

  vi1=[1,0.01,0]

  vi2=[-5,0,1]

  vi3=[0,-1,0]

  v01=np.array(vi1)

  v02=np.array(vi2)

  v03=np.array(vi3)

  #函数

  def derivs_func(y,t,G,m1,m2,m3):

  d1=y[:3]

  d2=y[3:6]

  d3=y[6:9]

  v1=y[9:12]

  v2=y[12:15]

  v3=y[15:18]

  dist 12=NP。sqrt((位置2[0]-位置1[0])* * 2(位置2[1]-位置1[1])* * 2(位置2[2]-位置1[2])* * 2)

  dist 13=NP。sqrt((位置3[0]-位置1[0])* * 2(位置3[1]-位置1[1])* * 2(位置3[2]-位置1[2])* * 2)

  dist 23=NP。sqrt((位置3[0]-位置2[0])* * 2(位置3[1]-位置2[1])* * 2(位置3[2]-位置2[2])* * 2)

  dv1dt=m2 *(D2-D1)/距离12 * * 3 m3 *(D3-D1)/距离13 * * 3

  dv2dt=m1 *(D1-D2)/距离12 * * 3 m3 *(D3-D2)/距离23 * * 3

  dv3dt=m1 *(D1-D3)/距离13 * * 3平方米*(D2-D3)/距离23 * * 3

  dd1dt=v1

  dd2dt=v2

  dd3dt=v3

  derivs=np.array([dd1dt,dd2dt,dd3dt,dv1dt,dv2dt,dv3dt])

  derivs3=derivs.flatten()

  退货衍生产品3

  yo=np.array([p01,p02,p03,v01,v02,v03])

  y0=yo.flatten()

  time=np.linspace(0,200,500)

  sol=odeint(derivs_func,y0,time,args=(G,m1,m2,m3))

  x1=sol[:3]

  x2=sol[:3:6]

  x3=sol[:6:9]

  fig=plt.figure(figsize=(15,15))

  ax=fig.add_subplot(111,projection=3d )

  ax.plot(x1[:0],x1[:1],x1[:2],color=b )

  ax.plot(x2[:0],x2[:1],x2[:2],color=m )

  ax.plot(x3[:0],x3[:1],x3[:2],color=g )

  ax.scatter(x1[-1,0],x1[-1,1],x1[-1,2],color=b ,marker=o ,s=30,label=Mass 1 )

  ax.scatter(x2[-1,0],x2[-1,1],x2[-1,2],color=m ,marker=o ,s=90,label=Mass 2 )

  ax.scatter(x3[-1,0],x3[-1,1],x3[-1,2],color=g ,marker=o ,s=60,label=Mass 3 )

  ax.legend()

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: