2023年10月12日 星期四

Yen week05

 Week05_1

void setup(){

   size(400,400,P3D); //processing的3D功能

}

void draw(){

  background(#FFFFF2);//老師喜歡的黃色

  pushMatrix();//備份矩陣

    translate(mouseX,mouseY);//移動

    box(100);//3D的盒子

  popMatrix();//還原矩陣

}

Week05_2

void setup(){

   size(400,400,P3D); //processing的3D功能

}

void draw(){

  background(#FFFFF2);//老師喜歡的黃色

  pushMatrix();//備份矩陣

    translate(mouseX,mouseY);//移動

    rotate(radians(mouseX));//對Y軸轉動

    fill(0,255,0);

    box(100);//3D的盒子

    

    noFill();//面不要填

    scale(2);

    box(100);

  popMatrix();//還原矩陣

}

Week05_3

size(410,410,P3D);

beginShape();

fill(255,0,0); vertex(200,0);

fill(0,255,0); vertex(0,400);

fill(0,0,255); vertex(400,400);

endShape(CLOSE);

week05_4

ArrayList<PVector> pt;//大的資料結構ArrayList


void setup(){

  size(400,400,P3D);

  pt = new ArrayList<PVector>();

}//初始化,把大的資料結構準備好(裡面放小資料結構)


void draw(){

  background(#FFFFF2);

  for(PVector p : pt){

    ellipse(p.x,p.y,10,10);

  }

}

void mousePressed(){

  pt.add(new PVector(mouseX,mouseY));

}//大的資料結構裡,加入小的PVector的物件

week05_5

ArrayList<PVector> pt;//大的資料結構ArrayList


void setup(){

  size(400,400,P3D);

  pt = new ArrayList<PVector>();

}//初始化,把大的資料結構準備好(裡面放小資料結構)


void draw(){

  background(#FFFFF2);

  for(PVector p : pt){//特殊的for迴圈,得小資結構

    ellipse(p.x,p.y,10,10);

  }

  beginShape();

  for(PVector p : pt){

    vertex(p.x,p.y);

  }

  endShape();

}

void mousePressed(){

  pt.add(new PVector(mouseX,mouseY));

}//大的資料結構裡,加入小的PVector的物件

week05_6

ArrayList<PVector> pt;//大的資料結構ArrayList


void setup(){

  size(400,400,P3D);

  pt = new ArrayList<PVector>();

}//初始化,把大的資料結構準備好(裡面放小資料結構)


void draw(){

  background(#FFFFF2);

  pushMatrix();

    if(mousePressed && mouseButton==RIGHT){

      translate(200,200);

      rotateY(radians(frameCount));

      translate(-200,-200);

    }

    for(PVector p : pt){//特殊的for迴圈,得小資結構

      ellipse(p.x,p.y,10,10);

    }

    beginShape();

    for(PVector p : pt){

      vertex(p.x,p.y);

    }

    endShape();

  popMatrix();

}

void mousePressed(){

  if(mouseButton==LEFT){

    pt.add(new PVector(mouseX,mouseY));

  }

}//大的資料結構裡,加入小的PVector的物件

week05_7

void setup(){

  size(400,400,P3D);

}

void draw(){

  background(255);

  if(mousePressed && mouseButton==LEFT) background(255,0,0);

  if(mousePressed && mouseButton==CENTER) background(0,255,0);

  if(mousePressed && mouseButton==RIGHT) background(0,0,255);

}

void mousePressed(){

  if(mouseButton==LEFT) println("LEFT");

  if(mouseButton==CENTER) println("CENTER");

  if(mouseButton==RIGHT) println("RIGHT");

}

week05_8

ArrayList<PVector> pt;

void setup(){

  size(400,400,P3D);

  pt = new ArrayList<PVector>();

  for(int i=0;i<20;i++){

    pt.add(new PVector(i*20,20));

  }//假設畫面中,點好了20個點點

}

void draw(){

  background(255);

  for(PVector p : pt){//畫出20個頂點

    ellipse(p.x,p.y,10,10);

  }

  if(ans!=null) ellipse(ans.x,ans.y,15,15);

}

PVector ans = null;

void mousePressed(){

  for(PVector p : pt){

    if(dist(p.x,p.y,mouseX,mouseY)<5){

      ans=p;

    }

  }

}

week05_9

ArrayList<PVector> pt;

void setup(){

  size(400,400,P3D);

  pt = new ArrayList<PVector>();

  for(int i=0;i<37;i++){

    pt.add(new PVector(random(400),random(400)));

  }//假設畫面中,點好了20個點點

}

void draw(){

  background(255);

  for(PVector p : pt){//畫出20個頂點

    ellipse(p.x,p.y,10,10);

  }

  if(ans!=null) ellipse(ans.x,ans.y,15,15);

}

PVector ans = null;

void mouseDragged(){

  for(PVector p : pt){

    if(mouseButton==CENTER &&ans!=null){

      ans.x=mouseX;

      ans.y=mouseY;

    }

  }

}

void mousePressed(){

  if(mouseButton==LEFT)pt.add(new PVector(mouseX,mouseY));

  else if(mouseButton==CENTER){

    for(PVector p : pt){

      if(dist(p.x,p.y,mouseX,mouseY)<5){

        ans = p;

      }

    }

  }

}

沒有留言:

張貼留言