初学者Processing代码问题,请牛人帮帮忙!
processing吧
全部回复
仅看楼主
level 3
木叶无边 楼主
最近在自学Processing,用的是《爱上Processing》这本书,书里有个例子的代码我想了很久没明白,求助各位牛人!
例子做的是“轻随”easing效果,即在某一横行里稍微落后于鼠标位置画圆。我不明白的是x+=(targetX-x)*easing这一行。我知道是循环地把+=后面赋值给前面,可是整段代码并没有定义x的初始值是多少,那代码如何能成立呢?难道x是电脑生成的随机值么?
float x;
float easing=0.1;
float diameter=12;
void setup(){
size(220,120);
smooth();
}
void draw(){
float targetX=mouseX;
x+=(targetX-x)*easing;
ellipse(x,40,12,12);
println(targetX+":"+x);
}
2013年04月23日 10点04分 1
level 13
在很多的编程环境里,变量在没赋值的时候,一般默认是0。你可以在setup里加一句打印x的值,验证一下。
2013年04月23日 14点04分 2
谢谢!试了,的确是这样的!
2013年04月23日 16点04分
level 1
void setup(){
size(200,200);
background(255);
smooth();
}
void draw(){
fill(255);
ellipse(100,70,80,80);
ellipseMode(CORNERS);
fill(0);
ellipse(70,70,90,90);
}
为什么这段代码中出现三个圆
2015年07月18日 08点07分 3
draw()函数在循环ellipseMode默认是CENTER,运行到ellipseMode(CORNERS);这时候就是CORNERS,下一次运行draw()函数里的ellipse(100,70,80,80);就又出来一个小椭圆
2015年07月18日 11点07分
谢谢[呵呵]
2015年07月28日 06点07分
1