将数字乘以宽度或高度会在处理中产生0

时间:2016-09-21 19:23:23

标签: processing

在处理中,当我将widthheight乘以数字时,我会一直变为0。例如:

int x = width*2;

我得到x = 0。为什么呢?

在处理中定义尺寸时,系统会自动指定widthheight(例如size(500,500))。在这种情况下,widthheight为500。

1 个答案:

答案 0 :(得分:0)

请注意widthheight只有在之后调用size()函数时的值。 (或者,如果您在调用size()后没有调用setup()函数。)

如果您在调用size()函数之前执行操作(例如在草图的开头),则可能会出现问题:

//this happens before the size() function is called!
int x = width*2;

void setup(){
   size(500, 500);
}

解决方案是将草图级变量的声明放在草图的顶部,但在调用size()函数后才进行初始化

int x;

void setup(){
   size(500, 500);
   x = width*2;
}

如果您尝试定义自己的widthheight变量,也可能会导致此问题:

//don't do this!
int width;
int height;

void setup(){
  size(500, 500);
  println(width);
}

不要这样做!只需使用Processing已经为您声明的widthheight变量。

更一般地说,正如您所见,如果人们无法重现您的问题,问题往往很快就会被关闭。虽然您确实包含了您正在使用Processing的事实,但如果您包含MCVE我们可以运行以查看问题,您将来会有更好的运气。我在这个答案中发布的代码是您将来在问题中应包含的类型的一个很好的例子,这样他们就不会被关闭。