首页 > 解决方案 > 我应该怎么做才能用变色点制作 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)```

标签: pythonanimationcolors3d

解决方案


推荐阅读