2025年5月15日 星期四

week13-12750724

 課堂作業1

//week13_1_processing_video
//sketch-library-manage library...
import processing.video.*;
//Capture video;//有鏡頭
Movie movie;//無鏡頭
void setup()
{
  size(640, 480);
  //video = new Capture(this, 640, 480);
  //video.start();//open video
  movie = new Movie(this, "street.mov");//讀檔
  movie.loop();
}
void draw()
{
  //if(video.available()) video.read();
  //image(video, 0, 480);
  if(movie.available()) movie.read();
  image(movie, 0, 0);
}

 
課堂作業2
//week13_2_camera_movie_eye_center_up
//電腦圖學繪圖時,會設定camera的相關係數
import processing.video.*;
Movie movie;
void setup()
{
  size(600, 400, P3D);
  movie = new Movie(this, "street.mov");
  movie.loop();//迴圈播放
}
void draw()
{
  background(128);
  camera(mouseX, mouseY, 120, 300, 200, 0, 0, 1, 0);
  //eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ
  if(movie.available()) movie.read();
  image(movie, 0, 0);
}
//week13_2_camera_movie_eye_center_up(修改)
//電腦圖學繪圖時,會設定camera的相關係數
import processing.video.*;
Movie movie;
void setup()
{
  size(720, 480, P3D);
  movie = new Movie(this, "street.mov");
  movie.loop();//迴圈播放
}
void draw()
{
  background(128);
  camera(mouseX, mouseY, 500, 360, 240, 0, 0, 1, 0);
  //eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ
  //把影片中心點當主角
  if(movie.available()) movie.read();
  image(movie, 0, 0);
}

課堂作業3
//week13_3_texture_textureMode_beginShape_vertex_endShape
PImage img;
void setup()
{
  size(400, 400, P3D);
  img = loadImage("chessboard.png");
  textureMode(NORMAL);
}
void draw()
{
  background(128);
  beginShape();
    texture(img);
    vertex(40, 80, 0, 0);
    vertex(320, 20, 1, 0);
    vertex(380, 360, 1, 1);
    vertex(160, 380, 0, 1);
  endShape();
}

課堂作業4
//week13_4_camera_chessboard_texture_front_left
PImage img;
void setup()
{
  size (400, 400, P3D);
  img = loadImage("chessboard.png");
  textureMode(NORMAL);
}
void draw()
{
  camera(mouseX, 200, mouseY, mouseX, 200, mouseY - 10, 0, 1, 0);
  background(128);
  beginShape();//正前方,z皆為0
    texture(img);
    vertex(0, 0, 0, 0, 0);
    vertex(400, 0, 0, 1, 0);
    vertex(400, 400, 0, 1, 1);
    vertex(0, 400, 0, 0, 1);
  endShape();
  beginShape();//left,x皆為0
    texture(img);
    vertex(0, 0, 0, 0, 0);//x, y, z, u, v
    vertex(0, 400, 0, 1, 0);
    vertex(0, 400, 400, 1, 1);
    vertex(0, 0, 400, 0, 1);
  endShape();
}

課堂作業5
//week13_5_camera_keyPressed_keyCode_x_y_z_cos_sin
//改自week13_4//利用方向鍵移動
PImage img;
void setup()
{
  size (400, 400, P3D);
  img = loadImage("chessboard.png");
  textureMode(NORMAL);
}
float x = 200, y = 200, z = 200, angle = 180;
void keyPressed()
{
  if(keyCode == LEFT) angle++;
  if(keyCode == RIGHT) angle--;
  if(keyCode == UP)
  {
    x += cos(radians(angle));
    z += sin(radians(angle));
  }
  if(keyCode == DOWN)
  {
    x -= cos(radians(angle));
    z -= sin(radians(angle));
  }
}
void draw()
{
  //camera(mouseX, 200, mouseY, mouseX, 200, mouseY - 10, 0, 1, 0);
  if(keyPressed) keyPressed();//讓按鍵按下去,會一直更新
  camera(x, y, z, x + cos(radians(angle)), y, z + sin(radians(angle)), 0, 1, 0);
  background(128);
  beginShape();//正前方,z皆為0
    texture(img);
    vertex(0, 0, 0, 0, 0);
    vertex(400, 0, 0, 1, 0);
    vertex(400, 400, 0, 1, 1);
    vertex(0, 400, 0, 0, 1);
  endShape();
  beginShape();//left,x皆為0
    texture(img);
    vertex(0, 0, 0, 0, 0);//x, y, z, u, v
    vertex(0, 400, 0, 1, 0);
    vertex(0, 400, 400, 1, 1);
    vertex(0, 0, 400, 0, 1);
  endShape();
}

課堂作業6
//week13_6_combine_all_Movie_Capture_PImage_camera_sin_cos_P3D
//把今天教得全加入
//street.mov 及 chessboard.png
import processing.video.*;
Movie movie;
PImage img;
void setup()
{
  size(400, 400, P3D);
  movie = new Movie(this, "street.mov");
  movie.loop();
  img = loadImage("chessboard.png");
  textureMode(NORMAL);
  video = new Capture(this, 640, 480);
  video.start();
}
Capture video; //有鏡頭在加
void draw()
{
  camera(200, 200, 200, 200 + cos(radians(frameCount)), 200, 200 + sin(radians(frameCount)), 0, 1, 0);
  background(128);
  if(movie.available()) movie.read();//有畫面就讀入
  beginShape();//正前方,z皆為0
    texture(img);
    vertex(0, 0, 0, 0, 0);
    vertex(400, 0, 0, 1, 0);
    vertex(400, 400, 0, 1, 1);
    vertex(0, 400, 0, 0, 1);
  endShape();
  translate(0, 0, 1);
  image(movie, 0, 0, 360, 240);
  if(video.available()) video.read();//有畫面就讀入
  beginShape();//left,x皆為0
    texture(video);
    vertex(0, 0, 0, 0, 0);//x, y, z, u, v
    vertex(0, 400, 0, 1, 0);
    vertex(0, 400, 400, 1, 1);
    vertex(0, 0, 400, 0, 1);
  endShape();
}

沒有留言:

張貼留言