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