📅  最后修改于: 2023-12-03 15:18:11.981000             🧑  作者: Mango
在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()函数非常有用的地方。