Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 关于Daniel Shiffman的全局变量与局部变量示例';s";“学习过程”;_Variables_Colors_Processing - Fatal编程技术网

Variables 关于Daniel Shiffman的全局变量与局部变量示例';s";“学习过程”;

Variables 关于Daniel Shiffman的全局变量与局部变量示例';s";“学习过程”;,variables,colors,processing,Variables,Colors,Processing,本机处理示例中包括以下两个来自Daniel Shiffman的“学习处理”: 示例#1 示例2 我将为第一个例子提出的问题很可能是一个已经被问过的问题;我的最佳猜测是,局部变量在本例中不起作用,因为draw()是一个循环,因此即使语句count=count+1存在以枚举int count,在draw()循环中声明int count=0也意味着该值不断重置为零。这是正确的吗 至于第二个例子,问题不一定是关于变量,而是关于程序运行的方式:在第一个循环(从黑色到白色)之后,为什么程序继续从黑色到蓝

本机处理示例中包括以下两个来自Daniel Shiffman的“学习处理”:

示例#1


示例2


我将为第一个例子提出的问题很可能是一个已经被问过的问题;我的最佳猜测是,局部变量在本例中不起作用,因为
draw()
是一个循环,因此即使语句
count=count+1
存在以枚举
int count
,在
draw()
循环中声明
int count=0
也意味着该值不断重置为零。这是正确的吗


至于第二个例子,问题不一定是关于变量,而是关于程序运行的方式:在第一个循环(从黑色到白色)之后,为什么程序继续从黑色到蓝色循环?如何在其他应用程序中避免或修复此问题?

在第一个示例中,变量在范围
draw
中声明。每次调用
draw
时,都会创建变量
count
,并由0初始化

在第二个示例中,使用全局变量
count
。该变量在应用程序启动时初始化一次,并不断递增

如果[
background()
]的参数可以是[0255]范围内的整数值。在这种情况下,参数被解释为灰度,其中0为黑色,255为白色。
如果整数值大于255,则解释为ans RGB值,该值由3个8位颜色分量(0xRRGGBB)组成。0xff0000为红色,0x00ff00为绿色,0x0000ff为蓝色

对于颜色变为蓝色的空白,必须确保该值小于255。e、 g:

void draw(){
计数=计数+1;
如果(计数>255){
计数=0;
}
背景(计数);
}

为了确保我理解正确,您所说的是像
background(256)这样的语句被解释为RGB值。如果是这种情况,那么大于255的整数值如何将计数移到蓝色,具体为
background(0,0,[0,255])?如果该值从灰度值溢出到RGB,因为红色是
background()
中的第一个参数,为什么循环不转换为红色而不是蓝色?@NicholasHoyt你是对的。什么都没有改变。255为0x000ff,256为0x000100。所以256实际上是RGB(0,1,0),它几乎是黑色的,只是有点绿色。511是0x0001ff,即RGB(0,1255)。注意,移位是隐式的,它只是一个整数。低8位为蓝色,位9至16为绿色,位17至24为红色。
void setup() {
  size(200,200);
}

void draw() {
  int count = 0;
  count = count + 1;
  background(count);
}
int count = 0;

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

void draw() {
  count = count + 1;
  background(count);
}