numpy.random 函数在 manim 上给出常量值



我最近意识到numpy上的随机函数在Scene中使用时总是给出相同的值,如以下示例所示:

from manimlib.imports import *
def r():
return np.random.rand(5)
class MyScene(Scene):
def construct(self):
print(r())        

将一遍又一遍地给出相同的值:

manim foo.py MyScene -p
...
[0.5488135  0.71518937 0.60276338 0.54488318 0.4236548 ]

查看manim/manimlib/scene/scene.py显示有一个默认为 0 的配置参数random_seed。 创建Scene时,它会调用random.random.seed将随机生成器的状态设置为此值。

要再次获取随机数,请按如下所示将其设置为None

def r():
return np.random.rand(5)
class MyScene(Scene):
CONFIG = dict(random_seed=None)
def construct(self):
print(r())

最新更新