2025年3月27日 星期四

12750573_黃柏維-week06

 

//week06-1
//有點模仿地4周的程式
void setup(){
  size(500,500,P3D);
}
void draw(){
  background(142);
  ellipse(width/2,height/2,200,200);
  translate(width/2,height/2);//把畫面放到中心
  pushMatrix();//第5周教過的matrix保護
  if(mousePressed)rotateZ(radians(frameCount));
  //rotate(radians(frameCount));//對著下面中心旋轉
  box(100,30,30);
  popMatrix();
}
//week06-2_ellipse_translate_push_rotate_translate_box_pop
//再加一個移動,把物體放到轉盤的中心
void setup(){
  size(500,500,P3D);
}
void draw(){
  background(142);
  ellipse(width/2,height/2,200,200);
  translate(width/2,height/2);//把畫面放到中心
  pushMatrix();//第5周教過的matrix保護
  if(mousePressed)rotateZ(radians(frameCount));
  translate(-50,0,0);//把棒子往左移一半,讓右端放在正中心
  box(100,30,30);
  popMatrix();
}


//week06-3
//再加一個移動,把物體放到轉盤的中心
void setup(){
  size(500,500,P3D);
}
void draw(){
  background(142);
  ellipse(width/2,height/2,200,200);
  translate(width/2,height/2);//把畫面放到中心
  pushMatrix();//第5周教過的matrix保護
  translate(x,y);
  if(mousePressed&&mouseButton==RIGHT){
    rotateZ(radians(frameCount));
  }
  translate(-50,0,0);//把棒子往左移一半,讓右端放在正中心
  box(100,30,30);
  popMatrix();
}
float x=0,y=0;
void mouseDragged(){
  x+=mouseX-pmouseX;
  y+=mouseY-pmouseY;
}

//week06-4_sphere_box_push_T_R_T_box_pop
//慢慢組合出機器手臂
void setup(){
  size(500,400,P3D);
}
void draw(){
  background(255);
  translate(width/2,height/2);
  sphere(10);//step04
  box(200,50,25);//step05手肘
  fill(252,131,77);
  pushMatrix();//step03
  translate(x,y);//step06 發現放100,0的地方
  if(mousePressed)rotateZ(radians(frameCount));
  translate(25,0,0);//step02 往右推,讓左端放中心
  box(50,25,50);//step01 小手腕
  popMatrix();
}
float x=0,y=0;//step06
void mouseDragged(){
  x+=mouseX-pmouseX;
  y+=mouseY-pmouseY;
  println("x:"+x+"y"+y);//step07印出來
}
//week06-5_push_T_box_push_T_R_T_box_pop_pop
//慢慢組合出機器手臂
void setup(){
  size(500,400,P3D);
}
void draw(){
  background(255);
  translate(width/2,height/2);
  fill(252,131,77);
  sphere(10);
  
  fill(252,131,77); 
  pushMatrix();//step04新的一組
  translate(x,y);//step05新的轉動
  //step03把程式往右縮排
    box(200,50,25);//手肘
    pushMatrix();
      translate(100,0);//step01把前一步發現的100,0放好
      //if(mousePressed)
      rotateZ(radians(frameCount));//step02只轉動
      translate(25,0,0);//往右推,讓左端放中心
      box(50,25,50);//小手腕
      popMatrix();
    popMatrix();
}
float x=0,y=0;
void mouseDragged(){
  x+=mouseX-pmouseX;
  y+=mouseY-pmouseY;
  println("x:"+x+"y:"+y);
}
//week06-6
//慢慢組合出機器手臂
void setup(){
  size(500,400,P3D);
}
void draw(){
  background(255);
  translate(width/2,height/2);
  sphere(10);
  
  fill(252,131,77);
  pushMatrix();
    box(50,200,25);//step03手臂
    pushMatrix();
      translate(x,y);//step03掛到手臂上
        if(mousePressed)rotateZ(radians(frameCount));//step02 把旋轉放入
        translate(100,0);//step01 把手肘的移動量0-100
        box(200,50,25);//手肘
        pushMatrix();
          translate(100,0);
          rotateZ(radians(frameCount));
          translate(25,0,0);
          box(50,25,50);//小手腕
        popMatrix();
    popMatrix();
   popMatrix();
}
float x=0,y=0;
void mouseDragged(){
  x+=mouseX-pmouseX;
  y+=mouseY-pmouseY;
  println("x:"+x+"y:"+y);
}
//week06-7
//慢慢組合出機器手臂
void setup(){
  size(500,800,P3D);//step00:把視窗變長一點
}
void draw(){
  background(255);
  translate(width/2,height/2);
  sphere(10);
  
  fill(252,131,77);
  pushMatrix();
    if(mousePressed&&mouseButton==RIGHT)rotateZ(radians(frameCount));//step03按右鍵旋轉
    if(mousePressed&&mouseButton==RIGHT)rotateZ(radians(frameCount));//step02按右鍵旋轉
    translate(x,y);//step01:要往上抬升到中心
    box(50,200,25);
    pushMatrix();
      translate(0,-100);//step00
        //if(mousePressed)
        rotateZ(radians(frameCount));//step00讓他一直轉
        translate(100,0);
        box(200,50,25);//手肘
        pushMatrix();
          translate(100,0);
          rotateZ(radians(frameCount));
          translate(25,0,0);
          box(50,25,50);//小手腕
        popMatrix();
    popMatrix();
   popMatrix();
}
float x=0,y=0;
void mouseDragged(){
  x+=mouseX-pmouseX;
  y+=mouseY-pmouseY;
  println("x:"+x+"y:"+y);
}










沒有留言:

張貼留言