2025年3月27日 星期四

12750856_邱品瑄

 

//week06_1_ellipse_translate_push_rotate_box_pop

//有點模仿第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 保護
    //改一下 要按下mouse才轉給你看
    if(mousePressed) rotateZ(radians(frameCount)); //對著下面中心旋轉
    box(100,30,30); //橫的棒子
  popMatrix(); //第5週教過的 matrix 保護
}



//week06_2_ellipse_translate_push_rotate_translate_box_pop
//再加1個移動
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(); //第5週教過的 matrix 保護
}



//week06_3_push_translate__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(); //第5週教過的 matrix 保護
    translate(x,y);
    if(mousePressed && mouseButton==RIGHT){ 
      rotateZ(radians(frameCount)); //對著下面中心旋轉
    }
    translate(-50,0,0); //把棒子往左移一半 讓右端放在正中心
    box(100,30,30); //橫的棒子
  popMatrix(); //第5週教過的 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); //Step4 放個圓球 當世界中心的參考
  
  box(200,50,25); //Step5 手肘
  
  fill(252,131,77);
  pushMatrix(); //Step3
    translate(x,y);//Step6 發現放100 0很好
    if(mousePressed)  rotateZ(radians(frameCount)); //Step3
    translate(25,0,0); //Step2 往右推 讓左端放中心
    box(50,25,50); //Step1 小手腕
  popMatrix(); //Step3 
}
float x = 0, y = 0; //Step6 會動的位置
void mouseDragged(){ //Step6
  x += mouseX - pmouseX;
  y += mouseY - pmouseY;
  println("x:" + x +" y:"+ y); //Step7 印出來
}



//week06_5_push_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(); //Step4 新的一組
    translate(x,y); //Step5 新的轉動
    //Step3 把程式往右縮排
    box(200,50,25); //Step5 手肘
    
    pushMatrix(); //Step3 把程式往右縮排
      translate(100,0); //Step1 發現放100 0很好
      //if(mousePressed)  //Step2 把剛剛的 if(mousePressed) 刪掉
      rotate(radians(frameCount));  //Step2 只轉動
      translate(25,0,0); // 往右推 讓左端放中心
      box(50,25,50); // 小手腕
    popMatrix(); //Step3 把程式往右縮排
  popMatrix();
}
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(); //Step4 push 
    //Step5 裡面要往右縮一個TAB
    box(50,200,25); //Step3 手臂
    pushMatrix(); 
      translate(x,y); //Step3 掛到手臂上面 觀察到0,-100
      if(mousePressed) rotateZ(radians(frameCount)); //Step2 把旋轉放入
      translate(100,0); //Step1 把手肘的移動量100,0 放入
      box(200,50,25); //手肘
      
      pushMatrix(); 
        translate(100,0);
        rotate(radians(frameCount));
        translate(25,0,0);
        box(50,25,50); // 小手腕
      popMatrix();
    popMatrix();
   popMatrix(); //Step4 pop
}
float x = 0, y = 0; // 會動的位置
void mouseDragged(){
  x += mouseX - pmouseX;
  y += mouseY - pmouseY;
  println("x:" + x +" y:"+ y);
}



//week06_7_push_RRT_many_TRT_inside_pop
//慢慢組合出機器手臂
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) rotateY(radians(frameCount)); //Step3 右鍵旋轉
    if(mousePressed && mouseButton==RIGHT) rotateZ(radians(frameCount)); //Step2 右鍵旋轉
    translate(0,-100); //translate(x,y); //Step1 要先往上抬升0-100 把"關節"到中心
    box(50,200,25); // 手臂
    pushMatrix(); 
      translate(0,-100); //Step00 掛到手臂上面 觀察到0,-100
      //if(mousePressed) //Step00 把 if(mousePressed) 刪掉 讓他一直轉
      rotateZ(radians(frameCount)); 
      translate(100,0); 
      box(200,50,25); //手肘
      
      pushMatrix(); 
        translate(100,0);
        rotate(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);
}


沒有留言:

張貼留言