2024年10月7日 星期一

week05

 //week05_01_cwa_typhoon_images

//存檔後,Ctrl-K開檔案總管,看data目錄哩,一堆圖檔
PImage img = loadImage("TWI_IR1_CR_800-2024-10-02-08-00.jpg");
size(800,800);
background(img);
week05_01_cwa_typhoon_images

//week05_02_cwa_typhoon_array_loadString
int N=299;
PImage [] imgs=new PImage[299];
void setup(){
  size(800,800);
  String [] filenames = loadStrings("list.txt");
  for(int i=0;i<N; i++){
    imgs[i]=loadImage(filenames[i]);
  }
}
void draw(){
  background(imgs[frameCount%N]);
}
                     

//week05_03_cwa_typhoon_2750
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(){ // void mouseDragged()
  x += mouseX - pmouseX;
  y += mouseY - pmouseY;
}
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;
}
 
     week05_03_cwa_typhoon_2750


//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,30,30);
}
void mouseDragged(){
  x=mouseX;
  y=mouseY;
}

week05_04_pendulum_mouseDragged_x_y

//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-200).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(){
  x=mouseX;
  y=mouseY;
}
week05_05_pendulum_cos_sin_draw_line

//week05_06_PVector_new_PVector_x_y
void setup(){
  size(400,600);
  c= new PVector(200,100);
  p= new PVector(200,130);
}
PVector c,p;
void draw(){
  background(255);
  ellipse(c.x,c.y,10,10);
  ellipse(p.x,p.y,10,10);
}

week05_06_PVector_new_PVector_x_y

//week05_07_pendulum_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-200).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();
  N.mult(100*sin(acos(g)));
  stroke(0,0,255);
  line(x,y,x+N.x,y+N.y);
}
void mouseDragged(){
  x=mouseX;
  y=mouseY;
}
week05_07_pendulum_PVector_normalize_dot_mult

//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-200).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 = PVector.sub(d2.mult(100),d);//.normalize();   //N.mult(100*sin(acos(g)));   stroke(0,0,255);//藍色線往右下   line(x,y,x+N.x,y+N.y);   v.x+=N.x/1000;   v.y+=N.y/1000;   x+=v.x;   y+=v.y; } PVector v = new PVector();//球的速度,一開始是0 void mouseDragged(){   x=mouseX;   y=mouseY; }

沒有留言:

張貼留言