2025年4月24日 星期四

12750051_week10

//week01_1_postman_head_body
//頭、身體、手臂、手肘、腳
size(560,560);
PImage postman = loadImage("1.png");
PImage head = loadImage("head.png");
PImage body = loadImage("body.png");
background(#FFFFF2);
image(postman,0,0);  //基礎的郵差先生(全身)
fill(255,0,255,128);  //半透明的紫色
rect(0,0,560,560); //蓋上去
image(head,0,0);  //先畫頭
image(body,0,0); //再畫身體

//week10_2_postman_head_body
PImage postman, head, body;
void setup(){
  size(560,560);
  postman = loadImage("1.png");
  head = loadImage("head.png");
  body = loadImage("body.png");
}
void draw(){
  background(#FFFFF2);
  image(postman,0,0);  //基礎的郵差先生(全身)
  fill(255,0,255,128);  //半透明的紫色
  rect(0,0,560,560); //蓋上去
  pushMatrix();
    translate(260,230); //再放回去正確的位置
    rotate(radians(mouseX));
    translate(-260,-230); //把頭的旋轉中心,放到(0,0)
    image(head,0,0);  //先畫頭
  popMatrix();
  image(body,0,0); //再畫身體
}

//week10_3_postman_head_body_arm_l_leg_l_push_trt_pop
PImage postman, head, body, arm_l, leg_l;
void setup(){
  size(560,560);
  postman = loadImage("1.png");
  head = loadImage("head.png");
  body = loadImage("body.png");
  arm_l = loadImage("arm_l.png");
  leg_l = loadImage("leg_l.png");
}
void draw(){
  background(#FFFFF2);
  image(postman,0,0);  //基礎的郵差先生(全身)
  fill(255,0,255,128);  //半透明的紫色
  rect(0,0,560,560); //蓋上去
  pushMatrix();
    translate(231,253); //再放回去
    rotate(radians(mouseX));
    translate(-231,-253); //把頭的旋轉中心,放到(0,0)
    image(arm_l,0,0);  //左手
  popMatrix();
  pushMatrix();
    translate(246,360); //再放回去
    //rotate(radians(mouseX));
    translate(-246,-360); //把頭的旋轉中心,放到(0,0)
    image(leg_l,0,0);  //左腳
  popMatrix();
  pushMatrix();
    translate(260,230); //再放回去
    //rotate(radians(mouseX));
    translate(-260,-230); //把頭的旋轉中心,放到(0,0)
    image(head,0,0);  //先畫頭
  popMatrix();
  image(body,0,0); //再畫身體
}  





//week10_4_postman_head_body_arm_r_l_leg_r_l_bag_push_trt_pop
PImage postman, head, body, arm_l, arm_r, leg_l, leg_r, bag;
void setup(){
  size(560,560);
  postman = loadImage("1.png");
  head = loadImage("head.png");
  body = loadImage("body.png");
  arm_l = loadImage("arm_l.png");
  leg_l = loadImage("leg_l.png");
  arm_r = loadImage("arm_r.png");
  leg_r = loadImage("leg_r.png");
  bag = loadImage("bag.png");
}
void draw(){
  background(#FFFFF2);
  image(postman,0,0);  //基礎的郵差先生(全身)
  fill(255,0,255,128);  //半透明的紫色
  rect(0,0,560,560); //蓋上去
  pushMatrix();
    translate(231,253); //再放回去
    rotate(radians(mouseX));
    translate(-231,-253); //把頭的旋轉中心,放到(0,0)
    image(arm_l,0,0);  //左手
    pushMatrix();
      translate(208,351); //再放回去
      rotate(radians(mouseX));
      translate(-208,-351); //把頭的旋轉中心,放到(0,0)
      image(bag,0,0);  //包包
    popMatrix();
  popMatrix();
  pushMatrix();
    translate(287,247); //再放回去
    //rotate(radians(mouseX));
    translate(-287,-247); //把頭的旋轉中心,放到(0,0)
    image(arm_r,0,0);  //右手
  popMatrix();
  pushMatrix();
    translate(246,360); //再放回去
    //rotate(radians(mouseX));
    translate(-246,-360); //把頭的旋轉中心,放到(0,0)
    image(leg_l,0,0);  //左腳
  popMatrix();
  pushMatrix();
    translate(282,362); //再放回去
    //rotate(radians(mouseX));
    translate(-282,-362); //把頭的旋轉中心,放到(0,0)
    image(leg_r,0,0);  //右腳
  popMatrix();
  
  pushMatrix();
    translate(260,230); //再放回去
    //rotate(radians(mouseX));
    translate(-260,-230); //把頭的旋轉中心,放到(0,0)
    image(head,0,0);  //先畫頭
  popMatrix();
  image(body,0,0); //再畫身體
}  

//week10_5_postman_many_angle_ID-mouseDragged
PImage postman, head, body, arm_l, arm_r, leg_l, leg_r, bag;
float [] angle = new float[20]; //準備20個關節的變數
int ID = 0; //現在要處理的關節ID(第幾個關節)
void mouseDragged(){
  angle[ID] += mouseX - pmouseX;
}
void keyPressed(){
  if(key=='1') ID=1;  //左手
  if(key=='2') ID=2;  //右手
  if(key=='3') ID=3;  //左腳
  if(key=='4') ID=4;  //右腳
  if(key=='5') ID=5;  //包包
  if(key=='6') ID=6;  //(待用)
  if(key=='0') ID=0; //頭
}
void setup(){
  size(560,560);
  postman = loadImage("1.png");
  head = loadImage("head.png");
  body = loadImage("body.png");
  arm_l = loadImage("arm_l.png");
  leg_l = loadImage("leg_l.png");
  arm_r = loadImage("arm_r.png");
  leg_r = loadImage("leg_r.png");
  bag = loadImage("bag.png");
}
void draw(){
  background(#FFFFF2);
  image(postman,0,0);  //基礎的郵差先生(全身)
  fill(255,0,255,128);  //半透明的紫色
  rect(0,0,560,560); //蓋上去
  pushMatrix();
    translate(231,253); //再放回去
    rotate(radians(angle[1]));
    translate(-231,-253); //把頭的旋轉中心,放到(0,0)
    image(arm_l,0,0);  //左手
    pushMatrix();
      translate(208,351); //再放回去
      rotate(radians(angle[5]));
      translate(-208,-351); //把頭的旋轉中心,放到(0,0)
      image(bag,0,0);  //包包
    popMatrix();
  popMatrix();
  pushMatrix();
    translate(287,247); //再放回去
    rotate(radians(angle[2]));
    translate(-287,-247); //把頭的旋轉中心,放到(0,0)
    image(arm_r,0,0);  //右手
  popMatrix();
  pushMatrix();
    translate(246,360); //再放回去
    rotate(radians(angle[3]));
    translate(-246,-360); //把頭的旋轉中心,放到(0,0)
    image(leg_l,0,0);  //左腳
  popMatrix();
  pushMatrix();
    translate(282,362); //再放回去
    rotate(radians(angle[4]));
    translate(-282,-362); //把頭的旋轉中心,放到(0,0)
    image(leg_r,0,0);  //右腳
  popMatrix();
  
  pushMatrix();
    translate(260,230); //再放回去
    rotate(radians(angle[0]));
    translate(-260,-230); //把頭的旋轉中心,放到(0,0)
    image(head,0,0);  //先畫頭
  popMatrix();
  image(body,0,0); //再畫身體
}  
//week10_6_postman_many_angle_ID-mouseDraggedPImage postman, head, body, arm_l, arm_r, leg_l, leg_r, bag;float [] angle = new float[20]; //準備20個關節的變數int ID = 0; //現在要處理的關節ID(第幾個關節)void mouseDragged(){  angle[ID] += mouseX - pmouseX;}void keyPressed(){  if(key=='1') ID=1;  //左手  if(key=='2') ID=2;  //右手  if(key=='3') ID=3;  //左腳  if(key=='4') ID=4;  //右腳  if(key=='5') ID=5;  //包包  if(key=='6') ID=6;  //(待用)  if(key=='0') ID=0; //頭    if(key=='s'){  //從這裡開始    String now =""; //要放現在全部關節    for(int i=0;i<20;i++){  //利用for迴圈      now += angle[i]+" "; //全部塞到now裡面,記得有空    }    lines.add(now); //把現在的這行,加到lines裡    String [] arr = new String[lines.size()];    lines.toArray(arr);    saveStrings("angles.txt",arr);  }  if(key=='r'){  //replay,照著之前按's'存檔的lines重播一次    if(R<lines.size()){      float [] now = float(split(lines.get(R),' '));      for(int i=0;i<20;i++) angle[i] = now[i];      R = (R+1) % lines.size();    }  }}int R = 0;ArrayList<String> lines = new ArrayList<String>(); //放移動的結果void setup(){  size(560,560);  postman = loadImage("1.png");  head = loadImage("head.png");  body = loadImage("body.png");  arm_l = loadImage("arm_l.png");  leg_l = loadImage("leg_l.png");  arm_r = loadImage("arm_r.png");  leg_r = loadImage("leg_r.png");  bag = loadImage("bag.png");}void draw(){  background(#FFFFF2);  image(postman,0,0);  //基礎的郵差先生(全身)  fill(255,0,255,128);  //半透明的紫色  rect(0,0,560,560); //蓋上去  pushMatrix();    translate(231,253); //再放回去    rotate(radians(angle[1]));    translate(-231,-253); //把頭的旋轉中心,放到(0,0)    image(arm_l,0,0);  //左手    pushMatrix();      translate(208,351); //再放回去      rotate(radians(angle[5]));      translate(-208,-351); //把頭的旋轉中心,放到(0,0)      image(bag,0,0);  //包包    popMatrix();  popMatrix();  pushMatrix();    translate(287,247); //再放回去    rotate(radians(angle[2]));    translate(-287,-247); //把頭的旋轉中心,放到(0,0)    image(arm_r,0,0);  //右手  popMatrix();  pushMatrix();    translate(246,360); //再放回去    rotate(radians(angle[3]));    translate(-246,-360); //把頭的旋轉中心,放到(0,0)    image(leg_l,0,0);  //左腳  popMatrix();  pushMatrix();    translate(282,362); //再放回去    rotate(radians(angle[4]));    translate(-282,-362); //把頭的旋轉中心,放到(0,0)    image(leg_r,0,0);  //右腳  popMatrix();    pushMatrix();    translate(260,230); //再放回去    rotate(radians(angle[0]));    translate(-260,-230); //把頭的旋轉中心,放到(0,0)    image(head,0,0);  //先畫頭  popMatrix();  image(body,0,0); //再畫身體}    


















 


沒有留言:

張貼留言