📜  p5.js | randomSeed()函数(1)

📅  最后修改于: 2023-12-03 15:18:11.981000             🧑  作者: Mango

p5.js | randomSeed()函数

在p5.js中,randomSeed()函数可以用于为random()函数设置随机种子。随机种子决定了随机数生成序列的起点,如果随机种子相同,那么生成的随机数序列也相同。

语法
randomSeed(seed)
参数
  • seed:指定随机种子的整数值。如果不提供参数,则默认使用当前时间作为随机种子。
返回值

此函数没有返回值。

使用示例
基本用法

以下示例生成两个矩形,使用相同的随机种子值,因此它们生成的随机气泡粒子位置相同。如果随机种子值不同,则两个矩形中的气泡粒子将不同。

function setup() {
  createCanvas(400, 400);
  background(220);
  noStroke();

  randomSeed(42); // 设置随机种子为42

  // 生成随机气泡粒子
  for (let i = 0; i < 20; i++) {
    fill(random(255), random(255), random(255), 100);
    let x = random(width);
    let y = random(height);
    ellipse(x, y, random(10, 50));
  }

  // 移动画布并重新生成随机气泡粒子
  translate(200, 200);
  randomSeed(42); // 设置相同的随机种子为42,使两个矩形中的气泡粒子相同
  for (let i = 0; i < 20; i++) {
    fill(random(255), random(255), random(255), 100);
    let x = random(width);
    let y = random(height);
    ellipse(x, y, random(10, 50));
  }

  // 恢复画布原始状态
  translate(-200, -200);
}
多次运算,同样产生相同的结果

有时候需要为程序提供一个确定的结果,例如在测试程序的正确性时,randomSeed()函数则可以用于解决这个问题。

function calc() {
  let sum = 0;
  randomSeed(42); // 计算的结果固定,相当于每次运算内部的随机数序列都是相同的
  for (let i = 0; i < 10; i++) {
    sum += random(1, 10);
  }
  return sum;
}

console.log(calc()); // 输出 52
console.log(calc()); // 输出 52
console.log(calc()); // 输出 52
结语

随机数是程序开发中经常用到的工具,但是在某些情况下,需要使随机数成为确定的事实,这是randomSeed()函数非常有用的地方。