2025年3月27日 星期四

12750202 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);//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);//Steo00 把視窗變長一點 看比較完整
}
void draw(){
  background(255);
  translate(width/2,height/2);
  sphere(10);
  fill(252,131,77);
  pushMatrix();
    if(mousePressed && mouseButton==RIGHT)rotateY(radians(frameCount));//Step02 右鍵旋轉
    if(mousePressed && mouseButton==RIGHT)rotateZ(radians(frameCount));//Step02 右鍵旋轉
    translate(0,-100);//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();//Step04 pop
}
float x=0,y=0;//會動的位置
void mouseDragged(){
  x += mouseX - pmouseX;
  y += mouseY - pmouseY;
  println("x:"+x+"y:"+y);
}






沒有留言:

張貼留言