作者 主题: 如何使circle的颜色随时间变化  (阅读 3840 次)

纠结

  • Newbie
  • *
  • 帖子: 3
如何使circle的颜色随时间变化
« 于: 三月 21, 2013, 07:55:11 下午 »
每次点击的出现的圆怎么从黑色渐进成红色?
还有怎么设置,可以任意敲击键盘使程序重置,让所有点击出现的圆消失





int orgX=150;
int orgY=200;
float g=255;
float b=255;
float r=255;

 
 
void setup()
{
  size(300,400);
  background(82,247,103);
    frameRate(30);
 //mid circle
 fill(211,21,44);
  ellipse(width/2, height/2,50,50);
}


void draw()
{
  fill(r,0,b);
  r-=0.5;

  b-=0.5;
 
   if(r<2){
    r=255;
  }
   if(b<2){
    b=255;
  }
}

 

void mousePressed() { 
//the click-line
  line(orgX,orgY,(mouseX+orgX)/2,(mouseY+orgY)/2);
//the click-circle
  ellipse((mouseX+orgX)/2,(mouseY+orgY)/2,50,50);
 
orgX=(mouseX+orgX)/2;
orgY=(mouseY+orgY)/2;
 }

RavenKwok

  • Sr. Member
  • ****
  • 帖子: 277
  • Artist/ Animator/ Coder/ Cynical Asshole
Re: 如何使circle的颜色随时间变化
« 回复 #1 于: 三月 21, 2013, 11:24:49 下午 »
如果你需要每个圆独立进行变色的话,你需要为圆单独建一个class,然后把所有的对象存入一个ArrayList 中,从ArrayList 中删除对象用remove() 即可。

参考:

http://processing.org/reference/ArrayList.html

黑到红你可以声明一个变量来控制R值,也可以用lerpColor() 插值控制。

纠结

  • Newbie
  • *
  • 帖子: 3
Re: 如何使circle的颜色随时间变化
« 回复 #2 于: 三月 22, 2013, 10:37:23 上午 »
前辈,请问怎么是void draw变化的事件影响到void mousePressed,因为我以下的code,每次点击时,圆显示的当前得到的颜色。我想让每个点击出现的圆刚开始都是red,然后转black,就不变






int orgX=150;
int orgY=200;
float g=255;
float b=255;
float r=255;
int colourRed=0;
 
 
void setup()
{
  size(300,400);
  background(82,247,103);
    frameRate(30);
 //mid circle
 fill(255,0,0);
  ellipse(width/2, height/2,50,50);
}


void draw()
{
 
  if(colourRed !=255) {
    fill(colourRed,0,0);
   colourRed++;
}


}

void mousePressed() { 
//the click-line
  line(orgX,orgY,(mouseX+orgX)/2,(mouseY+orgY)/2);
//the click-circle
  ellipse((mouseX+orgX)/2,(mouseY+orgY)/2,50,50);
 
orgX=(mouseX+orgX)/2;
orgY=(mouseY+orgY)/2;
 
}

leming0628

  • Newbie
  • *
  • 帖子: 1
Re: 如何使circle的颜色随时间变化
« 回复 #3 于: 三月 25, 2013, 02:26:20 上午 »
楼主是COMP115的学生吗? 可以留个QQ交流一下吗

RavenKwok

  • Sr. Member
  • ****
  • 帖子: 277
  • Artist/ Animator/ Coder/ Cynical Asshole
Re: 如何使circle的颜色随时间变化
« 回复 #4 于: 三月 26, 2013, 05:56:18 上午 »
@纠结

你表达得不清楚,我不太明白你的意思。感觉你的第一语言不是中文?

Tags: