2024年9月16日 星期一

WEEK02一把抓住互動技術概論,頃刻練化

 Week02

滑鼠x座標控制角度
//File-Preferences
void setup() {
  size(400, 400);
}
void draw() {
  background(255);
  fill(#FFDC0F);//填充黃色
  float a = radians(mouseX);
  for (int x=0; x<400; x+=100) {
    for (int y=0; y<400; y+=100) {
      arc(x+50, y+50, 100, 100, 0 + a, PI*2 - a, PIE);//改畫弧度
      //X座標, Y, 寬, 高, 開始, 結束蘋果派的方法畫
    }
  }
}
一開始張一點,第二次張到消失
void setup() {
  size(400, 400);
}
void draw() {
  background(255);
  fill(#FFDC0F);
  float a = radians(frameCount);
  if(a>PI/4) a = a - PI/4;
  arc(200, 200, 300, 300, 0+a, PI*2-a, PIE);
  
}

0~45度張合
//File-Preferences
void setup() {
  size(400, 400);
}
void draw() {
  background(255);
  fill(#FFDC0F);
  float a = frameCount % 180;
  if (a<45) a = radians(a);
  else if (a<90) a = radians(90-a);
  else if (a<135) a = radians(a-90);
  else if (a<180) a = radians(180-a);
  arc(200, 200, 300, 300, 0+a, PI*2-a, PIE);
}



更多的張合圓
//File-Preferences
void setup() {
  size(400, 400);
}
void draw() {
  background(255);
  fill(#FFDC0F);//填充黃色
  //float a = radians(mouseX);
  for (int x=0; x<400; x+=100) {
    for (int y=0; y<400; y+=100) {
      float a = frameCount % 180;
      if (a<45) a = radians(a);
      else if (a<90) a = radians(90-a);
      else if (a<135) a = radians(a-90);
      else if (a<180) a = radians(180-a);
      arc(x+50, y+50, 100, 100, 0 + a, PI*2 - a, PIE);//改畫弧度
      //X座標, Y, 寬, 高, 開始, 結束蘋果派的方法畫
    }
  }
}

圓球跟著移動鍵移動
void setup(){
 size(400, 400);
}
int x = 200, y = 200;
void draw(){
  background(255);
  fill(#FFDC0F);
  if(keyPressed && keyCode==RIGHT) x++;
  if(keyPressed && keyCode==LEFT) x--;
  if(keyPressed && keyCode==UP) y--;
  if(keyPressed && keyCode==DOWN) y++;
  ellipse(x, y, 100, 100);
}
跟著滑鼠x座標轉動
//File-Preferences
void setup() {
  size(400, 400);
}
void draw() {
  background(255);
  fill(#FFDC0F);
  float a = frameCount % 180;
  float b = radians(mouseX);
  if (a<45) a = radians(a);
  else if (a<90) a = radians(90-a);
  else if (a<135) a = radians(a-90);
  else if (a<180) a = radians(180-a);
  arc(200, 200, 300, 300, b+0+a, b+PI*2-a, PIE);
}

移動鍵控制張嘴方向
void setup() {
  size(400, 400);
}
float x = 200, y = 200, d=PI/2*0;
void draw() {
  background(255);
  fill(#FFDC0F);
  float a = frameCount % 180;
  if (a<45) a = radians(a);
  else if (a<90) a = radians(90-a);
  else if (a<135) a = radians(a-90);
  else if (a<180) a = radians(180-a);
  arc(x, y, 100, 100, d+0+a, d+PI*2-a, PIE);
}
void keyPressed() {
  if (keyCode==RIGHT) {
    x++;
    d = PI/2*0;
  } else if (keyCode==DOWN) {
    y++;
    d = PI/2*1;
  } else if (keyCode==LEFT) {
    x--;
    d= PI/2*2;
  } else if (keyCode==UP) {
    y--;
    d = PI/2*3;
  }
}


隨著按下的移動鍵方向漂浮
void setup() {
  size(400, 400);
}
int x= 200, y = 200, d = 0;
void draw() {
  background(255);
  fill(#FFDC0F);
  float a = 0.5;
  int [] dx = {1, 0, -1, 0};
  int [] dy = {0, 1, 0, -1};
  x += dx[d];
  y += dy[d];
  arc(x, y, 100, 100, PI/2*d + a, PI/2*d + PI*2 - a, PIE);
}
void keyPressed() {
  if (keyCode==RIGHT) d = 0;
  if (keyCode==DOWN) d = 1;
  if (keyCode==LEFT) d = 2;
  if (keyCode==UP) d= 3;
}



隨著按下的移動鍵方向移動的張合嘴
void setup() {
  size(400, 400);
}
int x= 200, y = 200, d = 0;
void draw() {
  background(255);
  fill(#FFDC0F);
  float a = radians(abs(frameCount%90-45));
  int [] dx = {1, 0, -1, 0};
  int [] dy = {0, 1, 0, -1};
  x += dx[d];
  y += dy[d];
  arc(x, y, 100, 100, PI/2*d + a, PI/2*d + PI*2 - a, PIE);
}
void keyPressed() {
  if (keyCode==RIGHT) d = 0;
  if (keyCode==DOWN) d = 1;
  if (keyCode==LEFT) d = 2;
  if (keyCode==UP) d= 3;
}









沒有留言:

張貼留言