python - 我应该怎么做才能用变色点制作 3d 动画?
问题描述
我想用变色点制作一个离散的 3d 动画。我有清单。问题是我不知道如何制作动画。随着时间的推移,我有三维概率函数。我想将概率值显示为从黑色到白色的颜色。(越接近 0,越接近白色。越接近 1,越接近黑色)我还希望点的颜色随着时间的推移而改变。你能推荐合适的代码吗?
P=[[[[0 for i1 in range(0,T+1)] for i2 in range(0,6)] for i3 in range(0,6)] for i4 in range(0,6)]
P[1][0][1][0]=1
a,b,c=1/5.2,0.03,1/12.5
def f(S,E,I,t):
s=0
R=N-S-E-I
if(I<N and R>0):
s+=c*(I+1)*P[N-S][E][I+1][t]/N
if(S<N and E>0):
s+=b*(S+1)*I*P[N-S-1][E-1][I][t]/(N**2)
if(E<N and I>0):
s+=a*(E+1)*P[N-S][E+1][I-1][t]/N
if(E>0 and I<N):
s-=a*E*P[N-S][E][I][t]/N
if(S>N-5 and E<N):
s-=b*S*I*P[N-S][E][I][t]/(N**2)
if(I>0 and R<N):
s-=c*I*P[N-S][E][I][t]/N
return s
def g(S,E,I,t):
s=0
R=N-S-E-I
k=f(S,E,I,t)
if(I<N and R>0):
s+=c*(I+1)*(P[N-S][E][I+1][t]+h/2*f(S,E,I+1,t))/N
if(S<N and E>0):
s+=b*(S+1)*I*(P[N-S-1][E-1][I][t]+h/2*f(S+1,E-1,I,t))/(N**2)
if(E<N and I>0):
s+=a*(E+1)*(P[N-S][E+1][I-1][t]+h/2*f(S,E+1,I-1,t))/N
if(E>0 and I<N):
s-=a*E*(P[N-S][E][I][t]+h/2*k)/N
if(S>N-5 and E<N):
s-=b*S*I*(P[N-S][E][I][t]+h/2*k)/(N**2)
if(I>0 and R<N):
s-=c*I*(P[N-S][E][I][t]+h/2*k)/N
return s
h=0.1
for t in range(0,T):
for S in range(N+1-5,N+1):
for E in range(0,N+1-S):
for I in range(0,N+1-S-E):
P[N-S][E][I][t+1]=P[N-S][E][I][t]+h*g(S,E,I,t)```
解决方案
推荐阅读
- php - 当我尝试填充动态下拉列表时出现 SQLSTATE [42000] 错误
- python - 如何解决 TypeError: create_superuser() got an unexpected keyword argument 'paid' in django
- android - 同一活动 Kotlin 中的抽屉导航和底部导航
- javascript - 单击按钮后如何使一个元素出现?
- ios - 使用 react-native-webrtc 的 ios 应用程序由于非公共 api 而被拒绝
- java - 是否有任何方法可以使用 Salesforce APEX 将图像保存到 Salesforce
- python - 使用 scipy 计算欧几里得距离会给出意想不到的结果
- python - 绘制时测试损失看起来很奇怪
- node.js - 输入值未存储在数据库中
- swift - 实现 Seguey 改变了 Swift 中安全区域的大小