//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); }
沒有留言:
張貼留言