2025年4月17日 星期四

week09-HSY

 //week09-2

PShape body, head;

void setup(){

  size(400,400,P3D);

  body = loadShape("body.obj");

  head = loadShape("head.obj");

}

void draw(){

  background(204);

  translate(200,300);

  sphere(10);

  

  scale(10,-10,10);

  

  shape(body, 0, 0);

  pushMatrix();

    translate(0, 22.5);

    rotateY(radians(mouseX-200));

    translate(0, -22.5);

    shape(head, 0, 0);

  popMatrix();

}



-----------------------------------------------------------------------------

//week09-3&4

PShape uparm1, upuparm1, hand1;

void setup(){

  size(400,400,P3D);

  uparm1 = loadShape("uparm1.obj");

  upuparm1 = loadShape("upuparm1.obj");

  hand1 = loadShape("hand1.obj");

}  

void draw(){

  background(204);

  translate(200,300);

  sphere(3);

  

  scale(10,-10,10);

  

  shape(upuparm1, 0, 0);

  pushMatrix();

  translate(-4.1, 19.9);

  rotateZ(radians(mouseX));

  //rotateX(radians(mouseY));

  translate(4.1, -19.9);

    //translate(mouseX/10.0, mouseY/10.0);

    //println(mouseX/10.0, -mouseX/10.0);

    shape(uparm1, 0, 0);

    pushMatrix();

      translate(-4.5, +16.9);

      rotateX(radians(mouseX));

      translate(4.5, -16.9);

      shape(hand1, 0, 0);

    popMatrix();  

  popMatrix();  

}




----------------------------------------------------------------

//week09-5

PShape uparm1, upuparm1, hand1;

void setup(){

  size(400,400,P3D);

  uparm1 = loadShape("uparm1.obj");

  upuparm1 = loadShape("upuparm1.obj");

  hand1 = loadShape("hand1.obj");

}

  float [] angle = new float[20];

  int ID = 0;

  void keyPressed(){

    if(key == '1') ID = 1;

    if(key == '2') ID = 2;

  }

void mouseDragged(){

  angle[ID] += mouseX - pmouseX;

}

void draw(){

  background(204);

  translate(200,300);

  sphere(3);

  

  scale(10,-10,10);

  

  shape(upuparm1, 0, 0);

  pushMatrix();

    translate(-4.1, 19.9);

    rotateZ(angle[1]); 

    translate(4.1, -19.9);

    shape(uparm1, 0, 0);

    pushMatrix();

      translate(-4.5, +16.9);

      rotateX(angle[2]);

      translate(4.5, -16.9);

      shape(hand1, 0, 0);

    popMatrix();  

  popMatrix();  

}




-----------------------------------------------------------

//week09-6

void setup(){

  size(300,300);

  rect(10, 10, 80, 80);

  rect(110,110,80,80);

  save("file.png"); //存檔用

  another = loadStrings("lines.txt");

}

int x = 10, y = 10, ID = 0;

void draw(){

  background(204);

  if(another != null){

    int [] now = int(split(another[ID], ' '));

    rect(now[0], now[1], 80, 80);

    ID = (ID+1) % another.length;

  }

  rect(x,y,80,80);

}

void mouseDragged(){

  x += mouseX - pmouseX;

  y += mouseY - pmouseY;

  String now = x + " " + y; //現在座標字串

  lines.add(now);

}

ArrayList<String> lines = new ArrayList<String>();

String [] another;

void keyPressed(){

  String [] arr = new String[lines.size()]; //傳統的JAVA陣列的資料結構

  lines.toArray(arr);//把ArrayList轉換成傳統的陣列 方便存檔

  if(key=='s') saveStrings("lines.txt", arr); //按下小寫的英文S 會存檔

}






沒有留言:

張貼留言