我最近意识到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())