2023年10月26日 星期四

茶碗蒸好吃 week07

 

WEEK07


Step01 小畫家




void setup(){
   size(400,400);
   background(255);
}
void draw(){
 if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY);
}
void mouseReleased(){
  background(255);
}









做出圓形往中心點移動



void setup(){
   size(400,400);
   background(255);
}
float ghostX=400,ghostY=20;
void draw(){
  ellipse(200,200,15,15);
 if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY);
  ellipse(ghostX,ghostY,15,15);
  float dx=200-ghostX,dy=200-ghostY,len=sqrt(dx*dx+dy*dy);
  ghostX +=dx/len/3;
  ghostY +=dy/len/3;
}
void mouseReleased(){
  background(255);
}













ArrayList<PVector> pt=new ArrayList<PVector>();
void setup(){
   size(400,400);
   background(255);
}
float ghostX=400,ghostY=20;
void mouseDragged(){
  pt.add(new PVector(mouseX,mouseY));
}
void draw(){
  background(255);
  ellipse(200,200,15,15);
  for(int i=0;i<pt.size();i++){
  PVector p=pt.get(i);
  ellipse(p.x,p.y,3,3);
}
 //if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY);
  ellipse(ghostX,ghostY,15,15);
  float dx=200-ghostX,dy=200-ghostY,len=sqrt(dx*dx+dy*dy);
  ghostX +=dx/len/3;
  ghostY +=dy/len/3;
}
void mouseReleased(){
  background(255);
}














放開M1,畫過的現就會消失



ArrayList<PVector> pt=new ArrayList<PVector>();
void setup(){
   size(400,400);
   background(255);
}
float ghostX=400,ghostY=20;
void mouseDragged(){
  pt.add(new PVector(mouseX,mouseY));
}
void draw(){
  background(255);
  ellipse(200,200,15,15);
  for(int i=0;i<pt.size();i++){
  PVector p=pt.get(i);
  ellipse(p.x,p.y,3,3);
}
 //if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY);
  ellipse(ghostX,ghostY,15,15);
  float dx=200-ghostX,dy=200-ghostY,len=sqrt(dx*dx+dy*dy);
  ghostX +=dx/len/3;
  ghostY +=dy/len/3;
}
void mouseReleased(){
  //background(255);
  for(int i=pt.size()-1;i>=0;i--){
    pt.remove(i);
  }
}












Step02






畫橫的線會變成紅色的




ArrayList<PVector> pt=new ArrayList<PVector>();
void setup(){
   size(400,400);
   background(255);
}
float ghostX=400,ghostY=20;
void mouseDragged(){
  pt.add(new PVector(mouseX,mouseY));
}
void draw(){
  background(255);
  ellipse(200,200,15,15);
  ellipse(ghostX,ghostY,15,15);
  strokeWeight(4);
  float dpx=0,dpy=0;
  for(int i=0;i<pt.size()-1;i++){
  PVector p=pt.get(i),p2=pt.get(i+1);
  dpx += abs(p2.x-p.x);
  dpy += abs(p2.y-p.y);
  //ellipse(p.x,p.y,3,3);
}
if(dpx>100&&dpy<40) stroke(255,0,0);
else stroke(0);
 //if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY);
  for(int i=0;i<pt.size()-1;i++){
  PVector p=pt.get(i),p2 = pt.get(i+1);
  line(p.x,p.y,p2.x,p2.y);
  }
  float dx=200-ghostX,dy=200-ghostY,len=sqrt(dx*dx+dy*dy);
  ghostX +=dx/len/3;
  ghostY +=dy/len/3;
}
void mouseReleased(){
  //background(255);
  for(int i=pt.size()-1;i>=0;i--){
    pt.remove(i);
  }
}






畫直的線會變藍色的



ArrayList<PVector> pt=new ArrayList<PVector>();
void setup(){
   size(400,400);
   background(255);
}
float ghostX=400,ghostY=20;
void mouseDragged(){
  pt.add(new PVector(mouseX,mouseY));
}
void draw(){
  background(255);
  strokeWeight(1);
  stroke(0);  ellipse(200,200,15,15);
  stroke(0); ellipse(ghostX,ghostY,15,15);
  strokeWeight(4);
  float dpx=0,dpy=0;
  for(int i=0;i<pt.size()-1;i++){
  PVector p=pt.get(i),p2=pt.get(i+1);
  dpx += abs(p2.x-p.x);
  dpy += abs(p2.y-p.y);
  //ellipse(p.x,p.y,3,3);
}
if(dpx>100&&dpy<40) stroke(255,0,0);
else if(dpx<40&&dpy>100) stroke(0,0,255);
else stroke(0);
 //if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY);
  for(int i=0;i<pt.size()-1;i++){
  PVector p=pt.get(i),p2 = pt.get(i+1);
  line(p.x,p.y,p2.x,p2.y);
  }
  float dx=200-ghostX,dy=200-ghostY,len=sqrt(dx*dx+dy*dy);
  ghostX +=dx/len/3;
  ghostY +=dy/len/3;
}
void mouseReleased(){
  //background(255);
  for(int i=pt.size()-1;i>=0;i--){
    pt.remove(i);
  }
}











往右下話會變綠色



ArrayList<PVector> pt=new ArrayList<PVector>();
void setup(){
   size(400,400);
   background(255);
}
float ghostX=400,ghostY=20;
void mouseDragged(){
  pt.add(new PVector(mouseX,mouseY));
}
void draw(){
  background(255);
  strokeWeight(1);
  stroke(0);  ellipse(200,200,15,15);
  stroke(0); ellipse(ghostX,ghostY,15,15);
  strokeWeight(4);
  float dpx=0,dpy=0;
  int rightdown=0;
  for(int i=0;i<pt.size()-1;i++){
  PVector p=pt.get(i),p2=pt.get(i+1);
  dpx += abs(p2.x-p.x);
  dpy += abs(p2.y-p.y);
  //ellipse(p.x,p.y,3,3);
  if(p2.x-p.x>0&&p2.y-p.y>0) rightdown++;
}
if(dpx>100&&dpy<40) stroke(255,0,0);
else if(dpx<40&&dpy>100) stroke(0,0,255);
else if(rightdown>30) stroke(0,255,0);
else stroke(0);
 //if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY);
  for(int i=0;i<pt.size()-1;i++){
  PVector p=pt.get(i),p2 = pt.get(i+1);
  line(p.x,p.y,p2.x,p2.y);
  }
  float dx=200-ghostX,dy=200-ghostY,len=sqrt(dx*dx+dy*dy);
  ghostX +=dx/len/3;
  ghostY +=dy/len/3;
}
void mouseReleased(){
  //background(255);
  for(int i=pt.size()-1;i>=0;i--){
    pt.remove(i);
  }
}





Step03



可以判斷打勾ˇ的形狀




ArrayList<PVector> pt=new ArrayList<PVector>();
void setup(){
   size(400,400);
   background(255);
}
float ghostX=400,ghostY=20;
void mouseDragged(){
  pt.add(new PVector(mouseX,mouseY));
}
void draw(){
  background(255);
  strokeWeight(1);
  stroke(0);  ellipse(200,200,15,15);
  stroke(0); ellipse(ghostX,ghostY,15,15);
  strokeWeight(4);
  float dpx=0,dpy=0;
  float rightdown=0,rightup=0;
  boolean green_part1=false,green_ok=false;
  for(int i=0;i<pt.size()-1;i++){
  PVector p=pt.get(i),p2=pt.get(i+1);
  dpx += abs(p2.x-p.x);
  dpy += abs(p2.y-p.y);
  if(p2.x-p.x>0&&p2.y-p.y>0) rightdown+=sqrt(dpx*dpx+dpy*dpy);
  if(p2.x-p.x>0&&p2.y-p.y>0) rightup+=sqrt(dpx*dpx+dpy*dpy);
  ellipse(p.x,p.y,10,10);
  if(green_part1==false&& rightdown>150) green_part1=true;
  else  if(green_part1==true&&rightup>150) green_ok=true;
}
println(rightdown);
if(dpx>100&&dpy<40) stroke(255,0,0);
else if(dpx<40&&dpy>100) stroke(0,0,255);
else if(green_ok) stroke(0,255,0);
else stroke(0);
 //if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY);
  for(int i=0;i<pt.size()-1;i++){
  PVector p=pt.get(i),p2 = pt.get(i+1);
  line(p.x,p.y,p2.x,p2.y);
  }
  float dx=200-ghostX,dy=200-ghostY,len=sqrt(dx*dx+dy*dy);
  ghostX +=dx/len/3;
  ghostY +=dy/len/3;
}
void mouseReleased(){
  //background(255);
  for(int i=pt.size()-1;i>=0;i--){
    pt.remove(i);
  }
}










把右下的線變成深綠色



ArrayList<PVector> pt=new ArrayList<PVector> ();
void setup(){
  size(400,400);
   background(255);
}
float ghostX=400,ghostY=20;
void  mouseDragged(){
  pt.add(new  PVector(mouseX,mouseY));
}
void draw(){
  background(255);
  strokeWeight(1);
  stroke(0) ; ellipse(200,200,15,15);
  stroke(0) ;ellipse(ghostX,ghostY,15,15);
  strokeWeight(4);
  float dpx=0,dpy=0;
  float  rightdown=0,green_rightup=0;
  boolean  green_part1=false,green_ok=false;
 /// if(mousePressed)  line(mouseX,mouseY,pmouseX,pmouseY);
 for(int i=0;i<pt.size()-1;i++){
   PVector p=pt.get(i),p2=pt.get(i+1);
   dpx+=abs(p2.x-p.x);
   dpy+=abs(p2.y-p.y);
   if(p2.x-p.x  >0  &&  p2.y-p.y>0)  rightdown+=sqrt(dpx*dpx+dpy*dpy);
   if(  green_part1  &&  p2.x-p.x>0 &&  p2.y-p.y<0)  green_rightup+=sqrt(dpx*dpx+dpy*dpy);
   ellipse(p.x,p.y,10,10); 
   if(green_part1==false && rightdown>150)        green_part1=true;
   else  if(green_part1==true && green_rightup>150)  green_ok=true;
 }
     println (rightdown);
 if(dpx>100&&dpy<40)           stroke(255,0,0);
 else if(dpx<40  &&  dpy>100)  stroke(0,0,255);
 else if(green_ok)         stroke(0,255,0);
 else if(green_part1)         stroke(0,128,0);
 else  stroke(0);
   for(int i=0;i<pt.size()-1;i++){
   PVector p=pt.get(i),p2=pt.get(i+1);
  line(p.x,p.y,p2.x,p2.y);
 }
  float  dx=200-ghostX,dy=200-ghostY,len=sqrt(dx*dx+dy*dy);
  ghostX+=dx/len/3;
  ghostY+=dy/len/3;
}
void mouseReleased(){
  for(int i=pt.size()-1;i>=0;i--){
    pt.remove(i);
 }
}



















這個^符號會變成黃色


ArrayList<PVector> pt=new ArrayList<PVector> ();
void setup(){
  size(400,400);
   background(255);
}
float ghostX=400,ghostY=20;
void  mouseDragged(){
  pt.add(new  PVector(mouseX,mouseY));
}
void draw(){
  background(255);
  strokeWeight(1);
  stroke(0) ; ellipse(200,200,15,15);
  stroke(0) ;ellipse(ghostX,ghostY,15,15);
  strokeWeight(4);
  float dpx=0,dpy=0;
  float  rightdown=0,green_rightup=0;
  float  rightup=0,yellow_rightdown=0;
  boolean  green_part1=false,green_ok=false;
    boolean  yellow_part1=false,yellow_ok=false;
 /// if(mousePressed)  line(mouseX,mouseY,pmouseX,pmouseY);
 for(int i=0;i<pt.size()-1;i++){
   PVector p=pt.get(i),p2=pt.get(i+1);
   dpx+=abs(p2.x-p.x);
   dpy+=abs(p2.y-p.y);
   if(p2.x-p.x  >0  &&  p2.y-p.y>0)  rightdown+=sqrt(dpx*dpx+dpy*dpy);
   if(  green_part1  &&  p2.x-p.x>0 &&  p2.y-p.y<0)  green_rightup+=sqrt(dpx*dpx+dpy*dpy);
   if(p2.x-p.x  >0  &&  p2.y-p.y<0)  rightup+=sqrt(dpx*dpx+dpy*dpy);
   if(  yellow_part1  &&  p2.x-p.x>0 &&  p2.y-p.y>0)  yellow_rightdown+=sqrt(dpx*dpx+dpy*dpy);
//ellipse(p.x,p.y,10,10); 
   if(green_part1==false && rightdown>150)        green_part1=true;
   else  if(green_part1==true && green_rightup>150)  green_ok=true;
   if(yellow_part1==false && rightup>150)        yellow_part1=true;
   else  if(yellow_part1==true && yellow_rightdown>150)  yellow_ok=true;
 }
     println (rightdown);
 if(dpx>100&&dpy<40)           stroke(255,0,0);
 else if(dpx<40  &&  dpy>100)  stroke(0,0,255);
 else if(green_ok)         stroke(0,255,0);
 //else if(green_part1)         stroke(0,128,0);
 else if(yellow_ok)         stroke(255,255,0);
 else  stroke(0);
   for(int i=0;i<pt.size()-1;i++){
   PVector p=pt.get(i),p2=pt.get(i+1);
  line(p.x,p.y,p2.x,p2.y);
 }
  float  dx=200-ghostX,dy=200-ghostY,len=sqrt(dx*dx+dy*dy);
  ghostX+=dx/len/3;
  ghostY+=dy/len/3;
}
void mouseReleased(){
  for(int i=pt.size()-1;i>=0;i--){
    pt.remove(i);
 }
}





















沒有留言:

張貼留言