1.week05_01_cwa_typhoon_images 把老師 github.com/jsyeh/cwa 的圖檔放入
//week_05_1_cwa_typhoon_images PImage img = loadImage("TWI_IR1_CR_800-2024-10-02-08-00.jpg"); size(800, 800); background(img);
// week05_01_cwa_typhoon_images 把老師 github.com/jsyeh/cwa 的圖檔放入 // 老師準備了 list.txt 裡面有299行 int N = 299; //剛好有299張圖 PImage [] imgs = new PImage[299]; //準備好 299張圖 對應的陣列 void setup(){ size(800, 800); //把list.txt的299行,放入 filenames String [] filenames = loadStrings("list.txt"); for(int i=0; i<N; i++){ // 把每一張圖,都讀進來 imgs[i] = loadImage(filenames[i]); } // 這個迴圈,會跑很久,因為圖檔很多 } void draw(){ int i = frameCount%N; // 照時間輪 %N 取餘數,以免超過陣列大小 background(imgs[frameCount%N]); // 現在要顯示地i張圖 } 3.week05_03_cwa_typhoon_2750
// week05_03_cwa_typhoon_2750 // 整合上週week04_6_better_scale & 今天的程式 PImage img; void setup(){ size(500, 500); //小視窗,大圖片 img = loadImage("LCC_VIS_TRGB_2750-2024-10-02-07-40.jpg"); } float s = 1.0, x = 0, y = 0; float realX = 0, realY = 0; void draw(){ background(255); //白背景 translate(x, y); scale(s); image(img, 0, 0); } void mouseDragged(){ x += mouseX - pmouseX; y += mouseY - pmouseY; } void mouseWheel(MouseEvent e){ //void mouseWheel(MouseEvent e) realX = (mouseX - x) / s; realY = (mouseY - y) / s; float oldS = s; if(e.getCount()<0) s *= 1.1; else s *= 0.9; x = x + realX*oldS - realX*s; y = y + realY*oldS - realY*s; }4.week05_04_pendulum_mouseDragged_x_y//week05_04_pendulum_mouseDragged_x_y void setup(){ size(400, 600); } float x = 200, y = 300; void draw(){ background(255); line(200, 100, x, y); ellipse(x, y, 40, 40); } void mouseDragged(){ // void mouseDragged x = mouseX; y = mouseY; }
5.week05_05_pendulum_cos_sin_draw_line//week05_05_pendulum_cos_sin_draw_line void setup(){ size(400, 600); } float x = 200, y = 300; void draw(){ background(255); stroke(0); //原來是黑色的線 line(200, 100, x, y); ellipse(x, y, 30, 30); stroke(255, 0, 0); //紅色往下的線 line(x, y, x, y+100); PVector d = new PVector(x-200, y-100).normalize(); PVector d2 = new PVector(0,1); float g = PVector.dot(d,d2); d.mult(100*g); stroke(0, 255, 0); //綠色往下的線 line(x, y, x+d.x, y+d.y); } void mouseDragged(){ // void mouseDragged x = mouseX; y = mouseY; }
6.week05_06_PVector_new_PVector_x_y// week05_06_PVector_new_PVector_x_y void setup(){ size(400, 600); c = new PVector(200, 100); // new 出新物件 p = new PVector(200, 130); // new 出新物件 } PVector c, p; void draw(){ background(255); ellipse(c.x, c.y, 10, 10); ellipse(p.x, p.y, 10, 10); }7.week05_07_PVector_normalize_dot_mult// week05_07_PVector_normalize_dot_mult void setup(){ size(400, 600); } float x = 200, y = 300; void draw(){ background(255); stroke(0); //原來是黑色的線 line(200, 100, x, y); ellipse(x, y, 30, 30); stroke(255, 0, 0); //紅色往下的線 line(x, y, x, y+100); PVector d = new PVector(x-200, y-100).normalize(); PVector d2 = new PVector(0,1); float g = PVector.dot(d,d2); d.mult(100*g); stroke(0, 255, 0); //綠色往下的線 line(x, y, x+d.x, y+d.y); PVector N = new PVector(d.y, -d.x).normalize(); //長度1 N.mult(100*sin(acos(g))); // g是cos(a),acos(g)舊式角度a stroke(0, 0, 255); //藍色線往右下 line(x, y, x+N.x, y+N.y); } void mouseDragged(){ // void mouseDragged x = mouseX; y = mouseY; }
8.week05_08_pendulum_not_OK_PVector_sub_velocity// week05_08_pendulum_not_OK_PVector_sub_velocity void setup(){ size(400, 600); } float x = 200, y = 300; void draw(){ background(255); stroke(0); //原來是黑色的線 line(200, 100, x, y); ellipse(x, y, 30, 30); stroke(255, 0, 0); //紅色往下的線 line(x, y, x, y+100); PVector d = new PVector(x-200, y-100).normalize(); PVector d2 = new PVector(0,1); float g = PVector.dot(d,d2); //cos(a) d.mult(100*g); stroke(0, 255, 0); //綠色往下的線 line(x, y, x+d.x, y+d.y); PVector N = PVector.sub(d2.mult(100),d); //PVector N = new PVector(d.y, -d.x).normalize(); //長度1 //N.mult(100*sin(acos(g))); // g是cos(a),acos(g)舊式角度a stroke(0, 0, 255); //藍色線往右下 line(x, y, x+N.x, y+N.y); v.x += N.x / 1000;// x += N.x / 100; v.y += N.y / 1000; //y += N.y / 100; x += v.x; y += v.y; } PVector v = new PVector(); //球的速度 void mouseDragged(){ // void mouseDragged x = mouseX; y = mouseY; }
沒有留言:
張貼留言