2020年5月1日 星期五

week10

製作 lyto different color

__________________________________先畫出4個圓____________________________________



size(300,500);
ellipse(75,200+75,150,150);//(x座標,y座標,直徑)
ellipse(75+150,200+75,150,150);

ellipse(75,200+75+150,150,150);
ellipse(75+150,200+75+150,150,150);

__________________________________畫出3*3個圓____________________________________

size(300,500);
ellipse(50,200+50,100,100);
ellipse(50+100,200+50,100,100);
ellipse(50+100+100,200+50,100,100);

ellipse(50,200+50+100,100,100);
ellipse(50+100,200+50+100,100,100);
ellipse(50+100+100,200+50+100,100,100);

ellipse(50,200+50+100+100,100,100);
ellipse(50+100,200+50+100+100,100,100);
ellipse(50+100+100,200+50+100+100,100,100);

________________________利用迴圈簡化程式_____________________________________


size(300,500);
for(int y=0;y<3;y++)//直排
{
  for(int x=0;x<3;x++)//橫排
  {
    ellipse(50+x*100,200+50+y*100,100,100);
  }
}

_______________________________若要n個球____________________________________


size(300,500);
//300是畫面寬度
int n=5;
int R=300/n, r=R/2;//R為直徑,r為半徑
for(int y=0;y<n;y++)
{
  for(int x=0;x<n;x++)
  {
    ellipse(r+x*R,200+r+y*R,R,R);
  }
}

_____________________________讓球放大________________________________________


void setup()
{
  size(300,500);
}
int n=5;
int R=300/n, r=R/2,RR=0;
void draw()
{
  for(int y=0;y<n;y++)
  {
    for(int x=0;x<n;x++)
    {
      ellipse(r+x*R,200+r+y*R,RR,RR);
    }
  }
  if(RR<R)RR++;//給個條件.讓圓形放大時不會重疊
}


void setup()
{
  size(300,500);
}
int n=5,RR=0;
void draw()
{
  background(0);
  int R=300/n, r=R/2;//放在迴圈,讓球的直徑會更新
  for(int y=0;y<n;y++)
  {
    for(int x=0;x<n;x++)
    {
      ellipse(r+x*R,200+r+y*R,RR,RR);
    }
  }
  if(RR<R)RR++;
  else
  {
    n++;//讓球的數量不斷增加
    RR=0;//球的大小歸0
  }
}


void setup()
{
  size(300,500);
}
int ansX=1, ansY=2;
int n=3,RR=0;
void draw()
{
  background(0);
  int R=300/n, r=R/2;
  for(int y=0;y<n;y++)
  {
    for(int x=0;x<n;x++)
    {
      if(x==ansX && y==ansY) fill(128);//符合條件改變顏色
      else fill(255);
      if(dist( mouseX,mouseY,r+x*R,200+r+y*R)<r)fill(255,0,0);//滑鼠碰到的圓 變紅色
      ellipse(r+x*R,200+r+y*R,RR,RR);
    }
  }
  if(RR<R)RR+=R/30;
  else
  {
    n++;
    RR=0;
  }
}
________________________________________________________________________

background(0);
  int R=300/n, r=R/2;
  for(int y=0;y<n;y++)
  {
    for(int x=0;x<n;x++)
    {
      if(x==ansX && y==ansY) fill(128);
      else fill(255);
      if(dist( mouseX,mouseY,r+x*R,200+r+y*R)<r)
      {
        if(mousePressed && x==ansX && y==ansY)//當按下灰色球時 換灰色球的位置
        {
          ansX=int (random(n));
          ansY=int (random(n));
        }
      }
      ellipse(r+x*R,200+r+y*R,RR,RR);
    }
_____________________________改變色彩______________________________________


void setup()
{
  size(300,500);
  colorMode(HSB,256);//色彩系統
}
int ansX=1, ansY=2;
int n=3,RR=0;
int H=0;//Hue色調
void draw()
{
  background(0);
  int R=300/n, r=R/2;
  for(int y=0;y<n;y++)
  {
    for(int x=0;x<n;x++)
    {
      if(x==ansX && y==ansY) fill(H-10,243,234);//答案些微調色
      else fill(H,255,255);
      if(dist( mouseX,mouseY,r+x*R,200+r+y*R)<r)
      {
        if(mousePressed && x==ansX && y==ansY)
        {
          ansX=int (random(n));
          ansY=int (random(n));
          H+=20;//改變顏色
          if(H>256)H=0;//超過色彩值變回紅色
        }
      }
      ellipse(r+x*R,200+r+y*R,RR,RR);
    }
  }
  if(RR<R)RR+=R/30;
}

沒有留言:

張貼留言