如何在一定间隔中设置随机值

时间:2018-11-22 04:41:22

标签: processing

例如,我正在尝试做到这一点,以便当其中一个圆圈偏离屏幕边缘时,它将其X坐标重置为-100,0或840,940。这是因为我希望它从另一个随机位置移回到屏幕上。

有没有办法在这种处理中使用随机函数?

我想解决的唯一方法就是这样做:

//in my real program this would be taking place in a for loop parsing through an array 
int = random(1,2);
if(x = 1){
   posX[i] = random(-100,0);
}
else{
   posX[i] = random(840,940);
}

但这会占用额外的空间。我认为有某种方法可以在一定间隔内创建随机值。

1 个答案:

答案 0 :(得分:0)

基本上,您所拥有的就是我所采用的方法。您的代码存在一些问题:您使用的是=而不是==,并且您正在精确地比较1而不是范围。您可能想要这样的东西:

float x = random(1);
if(x < .5){
  myValue = random(-100, 0);
}
else{
  myValue = random(840, 940);
}

关于编程的一件很酷的事情是,您可以创建自己的函数,如下所示:

float getValueFromRanges(float startOne, float endOne, float startTwo, float endTwo){

  if(random(1) < .5){
    return random(startOne, endOne);
  }
  else{
    return random(startTwo, endTwo);
  }
}

然后,只要您想要这些范围内的随机值,就可以调用此函数:

float myValue = getValueFromRanges(-100, 0, 840, 940);

或者您可以使用三元运算符在一行代码中做到这一点:

float myValue = random(1) < .5 ? random(-100, 0) : random(840, 940);

后一种方法可读性不高,因此我可能会创建一个函数。