WEEK07
1.放開滑鼠即讓線消失
void setup(){
size(400,400);
}
void draw(){
if(mousePressed) line(mouseX,mouseY,pmouseX, pmouseY);
}
void mouseReleased(){
background(255);
}
2.鬼會有殘影
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);
}
3.有殘影的主角 可畫圖
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);
//if(mousePressed) line(mouseX,mouseY,pmouseX, pmouseY);
for(int i=0; i<pt.size(); i++){
PVector p = pt.get(i);
ellipse(p.x,p.y,3,3);
}
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);
}
4.到過來的for迴圈
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);
//if(mousePressed) line(mouseX,mouseY,pmouseX, pmouseY);
for(int i=0; i<pt.size(); i++){
PVector p = pt.get(i);
ellipse(p.x,p.y,3,3);
}
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(){
for(int i=pt.size()-1; i>=0; i--){
pt.remove(i);
}
//background(255);
}
6.
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);
//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);
}
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(){
for(int i=pt.size()-1; i>=0; i--){
pt.remove(i);
}
//background(255);
}
7.可以變成紅色
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;
//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);
dpx += abs(p2.y - p.y);
}
if(dpx>100 && dpy<40) stroke(255,0,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);
}
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(){
for(int i=pt.size()-1; i>=0; i--){
pt.remove(i);
}
//background(255);
}
8.
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);
strokeWeight(0); ellipse(200,200,15,15);
strokeWeight(0); ellipse(ghostX,ghostY,15,15);
strokeWeight(4);
float dpx=0, dpy=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);
dpx += abs(p2.x - p.x);
dpx += abs(p2.y - p.y);
}
if(dpx>100 && dpy<40) stroke(255,0,0); //type 1 紅色的橫線
else if(dpx<40 && dpy>100) stroke(0,0,255); //type 2 藍色的直線
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);
}
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(){
for(int i=pt.size()-1; i>=0; i--){
pt.remove(i);
}
//background(255);
}
9.type3的前半段 rightdown
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);
strokeWeight(0); ellipse(200,200,15,15);
strokeWeight(0); ellipse(ghostX,ghostY,15,15);
strokeWeight(4);
float dpx=0, dpy=0;
int rightdown = 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);
dpx += abs(p2.x - p.x);
dpx += abs(p2.y - p.y);
if(p2.x-p.x>0 && p2.y-p.y>0) rightdown++;
}
if(dpx>100 && dpy<40) stroke(255,0,0); //type 1 紅色的橫線
else if(dpx<40 && dpy>100) stroke(0,0,255); //type 2 藍色的直線
else if(rightdown>30) stroke(0,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);
}
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(){
for(int i=pt.size()-1; i>=0; i--){
pt.remove(i);
}
//background(255);
}
10.
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);
strokeWeight(0); ellipse(200,200,15,15);
strokeWeight(0); ellipse(ghostX,ghostY,15,15);
strokeWeight(4);
float dpx=0, dpy=0;
float rightdown = 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);
dpx += abs(p2.y - p.y);
if(p2.x-p.x>0 && p2.y-p.y>0) rightdown+=sqrt(dpx*dpx+dpy*dpy);
}
if(dpx>100 && dpy<40) stroke(255,0,0); //type 1 紅色的橫線
else if(dpx<40 && dpy>100) stroke(0,0,255); //type 2 藍色的直線
else if(rightdown>30) stroke(0,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);
}
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(){
for(int i=pt.size()-1; i>=0; i--){
pt.remove(i);
}
//background(255);
}
11.有錯
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);
strokeWeight(0); ellipse(200,200,15,15);
strokeWeight(0); ellipse(ghostX,ghostY,15,15);
strokeWeight(4);
float dpx=0, dpy=0;
float rightdown = 0,rightup=0;
//if(mousePressed) line(mouseX,mouseY,pmouseX, pmouseY);
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);
dpx += 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_partl==true && rightup>150) green_ok = true;
}
println(rightdown);
if(dpx>100 && dpy<40) stroke(255,0,0); //type 1 紅色的橫線
else if(dpx<40 && dpy>100) stroke(0,0,255); //type 2 藍色的直線
else if(rightdown>30) stroke(0,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);
}
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(){
for(int i=pt.size()-1; i>=0; i--){
pt.remove(i);
}
//background(255);
}
12.
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);
strokeWeight(0); ellipse(200,200,15,15);
strokeWeight(0); ellipse(ghostX,ghostY,15,15);
strokeWeight(4);
float dpx=0, dpy=0;
float rightdown = 0,green_rightup=0;
//if(mousePressed) line(mouseX,mouseY,pmouseX, pmouseY);
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);
dpx += 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); //type 1 紅色的橫線
else if(dpx<40 && dpy>100) stroke(0,0,255); //type 2 藍色的直線
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);
}
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(){
for(int i=pt.size()-1; i>=0; i--){
pt.remove(i);
}
//background(255);
}
12.
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);
strokeWeight(0); ellipse(200,200,15,15);
strokeWeight(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;
//if(mousePressed) line(mouseX,mouseY,pmouseX, pmouseY);
boolean green_part1 = false, green_ok = false;
boolean yellow_part1 = false, yellow_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);
dpx += 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); //type 1 紅色的橫線
else if(dpx<40 && dpy>100) stroke(0,0,255); //type 2 藍色的直線
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);
}
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(){
for(int i=pt.size()-1; i>=0; i--){
pt.remove(i);
}
//background(255);
}









沒有留言:
張貼留言