2025年3月27日 星期四

week06_12750156_黃映綺

 課堂作業1

//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保護

}


點一下滑鼠會旋轉

課堂作業2

//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保護

    //改一下,要按下mouse才轉給你看

    if(mousePressedrotateZ(radians(frameCount));//對著下面中心轉

    translate(-50,0,0); //把棒子往左移一半,讓右端放在政中心

    box(100,30,30);//橫的棒子

  popMatrix(); //第5週教過的matrix保護

}

課堂作業3

//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();//第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; //滑鼠拖曳 會改變x,y軸

void mouseDragged(){

  x += mouseX - pmouseX;

  y += mouseY - pmouseY;

}

課堂作業4

//week06_4_sphere_box_push_T_R_T_box_pop
//慢慢組合出機械手臂

void setup(){

  size(500,500,P3D);

}

void draw(){
  background(255);//Step00
  translate(width/2, height/2); //Step00
  sphere(10); //Step4 放個圓球,當世界中心的參考
  
  box(200,50,25);//Step05 手肘
  
  fill(252,131,77);//填色
  pushMatrix();//Step03
    translate(x,y); //Step06 發現放100,0很好
    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印出來
}

課堂作業5

//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(); //Step04 新的一組
    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);
}

課堂作業6

//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
    //Step05 裡面要往右縮一個TAB
    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();
 popMatrix(); //Step04 pop
}
float x=0,y=0; // 會動的位置
void mouseDragged(){
  x += mouseX - pmouseX;
  y += mouseY - pmouseY;
  println("x:" + x + "y:" + y);
}

課堂作業7


//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));//Step03: 右建旋轉
    if(mousePressed && mouseButton==RIGHT) rotateZ(radians(frameCount));//Step02: 右建旋轉
    translate(0,-100);//translate(x,y);  //Step01 要往上抬升0,100,到「關節」中心
    box(50,200,25); //手臂
    pushMatrix();
      translate(0, -100); //Step00: 掛到手臂上,觀察到0-100
      //if(mousePressed)  Step00: 把if(mousePress)刪掉,讓它一直轉
      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);
}











沒有留言:

張貼留言