2025年3月27日 星期四

12750591_week06

 //week06_1_ellipse_translate_push_rotate_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(); //第五周教過matrix保護

 if(mousePressed) rotateZ(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(); //第五周教過matrix保護
 if(mousePressed) rotateZ(radians(frameCount));//對著下面中心旋轉
 translate(-50,0,0); //把棒子往左移一半,讓右端放在正中央
 box(100,30,30); //橫的棒子
 popMatrix(); //第五周教過matrix保護
}

//week06_3_push_translate_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(); //第五周教過matrix保護
 translate(x,y);
 if(mousePressed&&mouseButton==RIGHT){
   rotateZ(radians(frameCount)); //對著下面中心旋轉
 }
 translate(-50,0,0); //把棒子往左移一半,讓右端放在正中央
 box(100,30,30); //橫的棒子
 popMatrix(); //第五周教過matrix保護
}
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); //step00
  translate(width/2,height/2); //step00
  sphere(10); //step04 放個圓球,當世界中心的參考
  
  box(200,50,25); //step05手肘
  
  fill(252,131,77);
  pushMatrix(); //step03
  translate(x,y); //step06
  if(mousePressed) rotateZ(radians(frameCount));//step03
  translate(25,0,0); //step02往右推,讓左端放中心
    box(50,25,50); //step01小手腕
  popMatrix(); //step03
}
float x=0,y=0; //step06會動的位置
void mouseDragged(){ //step06
  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);
  sphere(10);
  
  fill(252,131,77);
  pushMatrix();
    translate(x,y); //step05新的轉動
    //step03往右縮排
    box(200,50,25); //step05手肘
    
    pushMatrix();  //step03往右縮排
      translate(100,0); //step01 把前一步發現的100,0放好
      //if(mousePressed) //step02把剛剛的if(mousePressed)刪掉
      rotateZ(radians(frameCount)); //step02只轉動
      translate(25,0,0); //往右推,讓左端放中心
      box(50,25,50); //小手腕
    popMatrix();  //step03往右縮排
  popMatrix();  //step04 新的一組
}
float x=0,y=0; //會動的位置
void mouseDragged(){
  x+=mouseX-pmouseX;
  y+=mouseY-pmouseY;
  println("x:"+x+"y:"+y);
}

//week06_6_push_box_push_TRT_box_push_TRT_box_pop_pop_pop
//慢慢組出機器手臂
void setup(){
  size(500,400,P3D);
}
void draw(){
  background(255); 
  translate(width/2,height/2);
  sphere(10);
  
  fill(252,131,77);
  pushMatrix();  //step04 push
  //step裡面要往右縮
    box(50,200,25); //step03:手臂
    pushMatrix();
      translate(x,y); //step03: 掛到手臂上面,觀察0-100
      if(mousePressed) rotateZ(radians(frameCount)); //step02: 把旋轉放入
      translate(100,0); //step01把手肘的移動量100,0放入
      box(200,50,25); //手肘
      
      pushMatrix();  
        translate(100,0);
        rotateZ(radians(frameCount));
        translate(25,0,0);
        box(50,25,50); //小手腕
        popMatrix();
      popMatrix();  //step03往右縮排
    popMatrix();  //step04 pop
}
float x=0,y=0; //會動的位置
void mouseDragged(){
  x+=mouseX-pmouseX;
  y+=mouseY-pmouseY;
  println("x:"+x+"y:"+y);
}
//week06_7_push_RRT_mant_TRT_inside_pop
//慢慢組合出機器手臂
void setup(){
  size(500,800,P3D); //把視窗變長一點
}
void draw(){
  background(255); 
  translate(width/2,height/2);
  sphere(10);  //黑球是中心
  
  fill(252,131,77);
  pushMatrix();
  if(mousePressed&&mouseButton==RIGHT) rotateZ(radians(frameCount));//Z:右鍵旋轉
  if(mousePressed&&mouseButton==RIGHT) rotateY(radians(frameCount));;//Y:右鍵旋轉
  translate(x,y);  //先往上抬0,100,把關節到中心
    box(50,200,25); //手臂
    pushMatrix();
      translate(0,-100); //step00: 掛到手臂上面,觀察0-100
      //if(mousePressed) 
      rotateZ(radians(frameCount));
      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);
}





沒有留言:

張貼留言