2025年3月27日 星期四

12750245_黃品燕_week06

 課堂作業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(mousePressed)rotateZ(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;

void mouseDragged(){

  x += mouseX-pmouseX;

  y += mouseY-pmouseY;

}


課堂作業4:

//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);//手肘

  

  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 手肘(剛剛放錯位置sorry)

    

    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);//Stap03: 手臂

    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();//Stap04 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: 要往上抬升,把[關節]到中心

    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);

        rotateZ(radians(frameCount));

        translate(25,0,0);

        box(50,25,50);//小手腕

      popMatrix();

    popMatrix();

  popMatrix();//Stap04 pop

}

float x=0,y=0;//會動的位置

void mouseDragged(){

  x += mouseX-pmouseX;

  y += mouseY-pmouseY;

  println("x:"+ x +"y:"+ y);

}



沒有留言:

張貼留言