【问题标题】:Using fxrand() for p5 project?将 fxrand() 用于 p5 项目?
【发布时间】:2022-06-11 20:05:18
【问题描述】:

我使用 p5 编辑器构建了一个 nft,我正在努力让它在 fxhash 沙箱中工作。当我将项目上传到沙箱时,使用 p5 的 random() 函数效果很好,但很快意识到我需要实现 fxrand() 函数以确保在使用相同的哈希刷新时每次迭代都是相同的。

简单地用 fxrand() 替换 p5 random() 函数的所有实例不起作用,我假设因为 fxrand() 只是生成一个随机数,而 p5 的 random() 函数可以以其他方式使用(即;随机(-50, 50))。

我需要如何将 fxrand() 函数以与 p5 的 random() 函数相同的方式合并到我的项目中?

【问题讨论】:

标签: p5.js nft generative-art


【解决方案1】:

您可能已经想通了,可能还有更好的解决方案(我对此很陌生),但这是我想通的。

如果我需要一个从 0 到 9 的数字,那么我可以使用这个:

let randChoose1 = Math.floor(fxrand() * 10;

我可以在任何需要拨打该号码的地方直接使用randChoose1。例如,如果我有一个名为“bg”的数组,该数组中有 10 个条目,并且我想从数组中选择一些东西,我可以这样做:

let randoBg = bg[randChoose1];

也许这是我想在画布上居中的图像,我可以这样称呼它:

image(randoBg, width / 2, height / 2);

如果数组中有 23 个项目,那么我只需声明 randChoose1

let randChoose1 = Math.floor(fxrand() * 23);

如果您希望能够选择负数,例如范围从 -50 到 50 的示例,只需乘以您想要的粗略总范围,然后减去一半即可。

let randChoose1 = Math.floor(fxrand() * 101 - 50;

在这种情况下,randChoose1 将为您提供从 -50 到 50 的结果范围。您必须乘以 101 才能使Math.floor 提供 100,因为它总是向下舍入。

如果您找到更好的解决方案,我很乐意听到!这也是我正在努力解决的问题,目前我对p5.js 的总体验还不到一周。

【讨论】:

    【解决方案2】:

    如果您每次调用随机函数时在设置函数的开头使用randomSeed(int(fxrand()*987654321)),它将取决于fxrand

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-12
      • 2012-10-04
      • 2011-12-14
      • 2010-12-05
      • 2014-10-26
      相关资源
      最近更新 更多