課堂作業1
//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();//week05 教過的 matrix 保護 if(mousePressed)//按下 mouse 才轉動 rotateZ(radians(frameCount));//對著下面中心旋轉 box(100, 30, 30);//week05 教過的 matrix 保護 popMatrix(); }
課堂作業2
//week06_2_ellipse_translate_push_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();//week05 教過的 matrix 保護 if(mousePressed)//按下 mouse 才轉動 rotateZ(radians(frameCount));//對著下面中心旋轉 translate(-50, 0, 0);//把棒子往左移一半,讓右端放在種中心 box(100, 30, 30);//week05 教過的 matrix 保護 popMatrix(); }
課堂作業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();//week05 教過的 matrix 保護 translate(x, y); if(mousePressed && mouseButton == RIGHT)//按下 mouse右鍵 才轉動 { rotateZ(radians(frameCount));//對著下面中心旋轉 } translate(-50, 0, 0);//把棒子往左移一半,讓右端放在種中心 box(100, 30, 30);//week05 教過的 matrix 保護 popMatrix(); } 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 //慢慢組出機器手臂 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);//手肘 pushMatrix();//step03把程式往右縮排 translate(100, 0);//step01 把前一步發現的 100, 0 放好 //if(mousePressed) rotateZ(radians(frameCount)); 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_T_R_T_box_push_T_R_T_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 box(50, 200, 25);//step03 手臂 pushMatrix(); translate(x, y);//step03 掛到手臂上 if(mousePressed) rotateZ(radians(frameCount));//step02 把旋轉放入 translate(100, 0);//step01 把手肘移動量放入 box(200, 50, 25);//手肘 pushMatrix(); translate(100, 0);//step01 把前一步發現的 100, 0 放好 //if(mousePressed) rotateZ(radians(frameCount)); rotateZ(radians(frameCount)); translate(25, 0, 0); box(50, 25, 50);//小手腕 popMatrix(); popMatrix(); popMatrix();//step04 } 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) rotateZ(radians(frameCount)); translate(x, y);//step01 往上抬升,把「關節」移到中心 box(50, 200, 25);//手臂 pushMatrix(); translate(0, -100);//step00 掛到手臂上 //if(mousePressed) step00 註解掉,讓它一直轉 rotateZ(radians(frameCount)); translate(100, 0); box(200, 50, 25);//手肘 pushMatrix(); translate(100, 0); //if(mousePressed) rotateZ(radians(frameCount)); 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); }







沒有留言:
張貼留言