2024年10月7日 星期一

酥皮 Week05

week05-01

 PImage img=loadImage("TWI_IR1_CR_800-2024-10-02-08-00.jpg");

size(800,800);
background(img);
week05-02
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
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
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
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();//長度1
  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
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);//使用物件的 c.x
  ellipse(p.x,p.y,10,10);
}
week05-07
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();//長度1
  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 = 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(){
  x=mouseX;
  y=mouseY;
}
week05-08
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();//長度1
  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();//球的速度,一開始是0
void mouseDragged(){
  x=mouseX;
  y=mouseY;
}

沒有留言:

張貼留言