2025年3月27日 星期四

12750094_week06

 //week06_1_ellipse_translate_push_rotateZ_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保護
  //按下mouse才轉動
    if(mousePressed) rotateZ(radians(frameCount));//對著下面中心旋轉
    box(100,30,30);//橫的棒子
  popMatrix();//Matrix保護
}

//week06_2_ellipse_translate_push_rotateZ_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保護
  //按下mouse才轉動
    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();//step04新的一組
    translate(x,y);//step05新的轉動
    box(200,50,25);//step03手肘
    pushMatrix();//step03把程式往右縮排
      translate(100,0);//step01把前一步發現的100,0放好
      //if(mousePressed) //step02把剛剛的if(mousePressed)刪掉
      rotateZ(radians(frameCount));//只轉動
      translate(25,0,0);//往右推,左端放中心
      box(50,25,50);//小手腕
    popMatrix();//step03把程式往右縮排
  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();//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:把手肘移動量放入
      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);
}
//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(x,y);//step01要往上抬升0,100到中心 0,100
    box(50,200,25);//手臂  
    pushMatrix();
      translate(0,-100);//step00掛到手臂上
      //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);
}


沒有留言:

張貼留言