2024年10月7日 星期一

放假症候群

 //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_02_cwa_typhoon_array_loadStrings

//老師準備了list.txt裡面有299行(很多圖檔的檔名)

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()

{

  int i = frameCount%N;

  background(imgs[i]);

}

//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()
{
  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;
  if(x>0)x=0;
  if(y>0)y=0;
  if(s<0.2)
  {
    x=0;
    y=0;
    s=0.2;
  }
}

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


//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_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();

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


沒有留言:

張貼留言