为了账号安全,请及时绑定邮箱和手机立即绑定

p5.j​​s 无法读取数组的随机值

p5.j​​s 无法读取数组的随机值

潇潇雨雨 2022-01-07 11:05:25
你好!我正在尝试在 p5.js 中做一些事情,当程序尝试获取数组的随机值时会卡住。这是我为演示而制作的一个简单程序:var arr = [100, 200];var a;function setup() {  createCanvas(400, 400);  a = random(0, 1);}function draw() {  background(220);  ellipse(arr[a], 20, 20, 20);}程序返回一条消息,说椭圆函数想要一个数字,但得到了一个变量。如果说arr[0]or arr[1],它会起作用,但不是arr[a]。我正在使用 p5.js 网络编辑器。我不知道为什么会这样。如果您有解决方案,请回复。谢谢!
查看完整描述

3 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

有一种更简单的方法可以使用 P5.js 获取数组的随机元素。 a = random(arr);将从数组中返回一个随机元素。


查看完整回答
反对 回复 2022-01-07
?
Helenr

TA贡献1780条经验 获得超4个赞

根据文档,该random()功能将:

返回一个随机浮点数。

这意味着它可能类似于0.123,这显然不是数组索引。

如果您想从数组中获取随机索引,您应该执行以下操作:

var arr = [100, 200];
var a = Math.round(random(0, arr.length));

这使您能够向源数组添加更多项目,而无需调整任何其他代码。然后根据浮点值将其四舍五入为最接近的整数(向上或向下)。


查看完整回答
反对 回复 2022-01-07
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

P5.js Random 返回一个随机浮点数。


工作演示:


var arr = [100, 200];

var a;


function setup() {

  createCanvas(400, 400);

  a = Math.floor(Math.random()*arr.length)

}


function draw() {

  background(220);

  ellipse(arr[a], 20, 20, 20);

}

<script src="https://cdn.jsdelivr.net/npm/p5@0.10.2/lib/p5.js"></script>


查看完整回答
反对 回复 2022-01-07
  • 3 回答
  • 0 关注
  • 188 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信