課堂作業1
//week09_1_gundam_head_body PShape body, head; void setup() { size(400, 400, P3D); body = loadShape("body.obj"); head = loadShape("head.obj"); } void draw() { background(204); translate(200, 300); sphere(10);//原點 scale(10, -10, 10); shape(body, 0, 0); shape(head, 0, 0); }課堂作業2
//week09_2_gundam_head_body_push_trt_pop PShape body, head; void setup() { size(400, 400, P3D); body = loadShape("body.obj"); head = loadShape("head.obj"); } void draw() { background(204); translate(200, 300); sphere(10);//原點 scale(10, -10, 10); shape(body, 0, 0); pushMatrix(); translate(0, 22.5); rotateY(radians(mouseX - 200)); rotateX(radians(mouseY - 60)); translate(0, -22.5); shape(head, 0, 0); popMatrix(); }
課堂作業3//week09_3_gunram_uparm_upuparm_push_trt_pop PShape uparm1, upuparm1; void setup() { size(400, 400, P3D); uparm1 = loadShape("uparm1.obj"); upuparm1 = loadShape("upuparm1.obj"); } void draw() { background(204); translate(200, 300); sphere(3);//小一點較清楚 scale(10, -10, 10); shape(upuparm1, 0, 0);//上上手臂 pushMatrix(); translate(-4.1, 19.9);//再掛回原位置 rotate(radians(mouseY)); translate(4.1, -19.9);//把物體旋轉中心,放到座標中心 //translate(mouseX / 10.0, -mouseY / 10.0); //println(mouseX / 10.0, -mouseY / 10.0);//印出適合的數值 shape(uparm1, 0, 0);//上手臂 popMatrix(); }
課堂作業4//week09_4_gunram_uparm_upuparm_push_trt_pop PShape uparm1, upuparm1, hand1; void setup() { size(400, 400, P3D); uparm1 = loadShape("uparm1.obj"); upuparm1 = loadShape("upuparm1.obj"); hand1 = loadShape("hand1.obj"); } void draw() { background(204); translate(200, 300); sphere(3);//小一點較清楚 scale(10, -10, 10); shape(upuparm1, 0, 0);//上上手臂 pushMatrix(); translate(-4.1, 19.9);//再掛回原位置 //rotateZ(radians(mouseY)); translate(4.1, -19.9);//把物體旋轉中心,放到座標中心 shape(uparm1, 0, 0);//上手臂 pushMatrix(); translate(-4.5, 16.9); rotateX(radians(mouseY)); translate(4.5, -16.9); //translate(mouseX / 10.0, -mouseY / 10.0); //println(mouseX / 10.0, -mouseY / 10.0);//印出適合的數值 shape(hand1, 0, 0); popMatrix(); popMatrix(); }
課堂作業5//week09_5_gunram_uparm_upuparm_hand_keyboard_mouse_angle PShape uparm1, upuparm1, hand1; void setup() { size(400, 400, P3D); uparm1 = loadShape("uparm1.obj"); upuparm1 = loadShape("upuparm1.obj"); hand1 = loadShape("hand1.obj"); } float [] angle = new float[20];//20個關節 int ID = 0;//關節代碼 void keyPressed() { if(key == '1') ID = 1; if(key == '2') ID = 2; } void mouseDragged() { angle[ID] += mouseX - pmouseX;//X方向的移動 } void draw() { background(204); translate(200, 300); sphere(3);//小一點較清楚 scale(10, -10, 10); shape(upuparm1, 0, 0);//上上手臂 pushMatrix(); translate(-4.1, 19.9);//再掛回原位置 rotateZ(radians(angle[1])); translate(4.1, -19.9);//把物體旋轉中心,放到座標中心 shape(uparm1, 0, 0);//上手臂 pushMatrix(); translate(-4.5, 16.9); rotateX(radians(angle[2])); translate(4.5, -16.9); //translate(mouseX / 10.0, -mouseY / 10.0); //println(mouseX / 10.0, -mouseY / 10.0);//印出適合的數值 shape(hand1, 0, 0); popMatrix(); popMatrix(); }
課堂作業6//week09_6_save_saveStrings_loadStrings void setup() { size(300, 300); rect(10, 10, 80, 80); rect(110, 110, 80, 80); save("file.png"); another = loadStrings("lines.txt"); } int x = 10, y = 10, ID = 0; void draw() { background(204); if(another != null) { int [] now = int(split(another[ID], ' ')); rect(now[0], now[1], 80, 80); ID = (ID + 1) % another.length; } rect(x, y, 80, 80); } void mouseDragged() { x += mouseX - pmouseX; y += mouseY - pmouseY; String now = x + " " + y;//座標字串 lines.add(now);//println(now);//在小黑印出來 } ArrayList<String> lines = new ArrayList<String>();//ArrayList資料結構 String [] another;//另一個讀到字串的資料結構 void keyPressed() { String [] arr = new String[lines.size()];//傳統Java陣列的資料結構 lines.toArray(arr);//轉換成傳統陣列以便存檔 if(key == 's') saveStrings("lines.txt", arr);//小寫s會存檔 }






沒有留言:
張貼留言