2025年5月15日 星期四

week13_12750316

week13_1__processing_video 

//Sketch-Library-Manage Libraries... 安裝videoAdd commentMore actions

//教學:https://processing.org/tutorials/video Library for processing4

import processing.video.*;

Capture video;

Movie movie;

void setup(){

  size(640,960);

  video = new Capture(this,640,480);

  video.start();

  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);

}


week13_2__camera_movie_eye_center_up

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);
  if(movie.available()) movie.read();
  image(movie,0,0);
}



week13_3_texture_textureMode_beginShape_vertex_endShape

PImage img;Add commentMore actions
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();
}


week13_4_camera_chessboard_texture_front_left

PImage img;Add commentMore actions
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();
  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();
  texture(img);
  vertex(0,0,0,0,0);
  vertex(0,400,0,1,0);
  vertex(0,400,400,1,1);
  vertex(0,0,400,0,1);
  endShape();
}


week13_5_camera_keyPressed-keyCode_x_y_z_angle_cos_sin

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();
  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();
  texture(img);
  vertex(0,0,0,0,0);
  vertex(0,400,0,1,0);
  vertex(0,400,400,1,1);
  vertex(0,0,400,0,1);
  endShape();
}


week13_6_combine_all_Movie_Capture_PImage_camera_sin_cos

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();
    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();
    texture(video);
    vertex(0,0,0,0,0);
    vertex(0,400,0,1,0);
    vertex(0,400,400,1,1);
    vertex(0,0,400,0,1);
  endShape();
  beginShape();
  texture(video);
}







沒有留言:

張貼留言