// week06_1_ellipse_translate_push_rotate_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_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(); // 第五週教過的 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); // Step手肘 fill(252,131,77); pushMatrix(); // Step03 translate(x,y); // Step06 發現的 100, 0很好 if(mousePressed) rotateZ(radians(frameCount)); 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 新的轉動 // Step03 把程式往右縮排 box(200,50,25); // Step05 手肘 (剛剛放錯位置sorry) pushMatrix(); translate(100,0); // Step01 把前一步發現的 100, 0很好 // if(musePressed) // Step02 把剛剛的 if(musePressed) 刪掉 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); // 印出來 }// 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) rotate(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); // 印出來 }// 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: 要往上抬升, 到中心 box(50,200,25); // 手臂 pushMatrix(); translate(0,-100); // Step03: 掛到手臂上面, 觀察0,-100 //if(mousePressed) // Step00 把if(mousePressed) 刪掉,讓他一直轉 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); // 印出來 }







沒有留言:
張貼留言