2025年5月15日 星期四

week13


 //week13-1-processing-video

import processing.video.*;
Capture video;
Movie movie;
void setup(){
  size(640,480);
  //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,0); 
  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);
  //processing.org/referce/camera_.html
  camera(mouseX, mouseY,500,360,240,0,0,1,0);//很多參數
  //eyex,eyey,eyez,centerx,centery,centerz,upx,upy,upz
  //把影片中心點當主角
  if (movie.available()) movie.read();//if 有新的變讀入
  image(movie,0,0);//放影片,放在(0,0)
}

---------------------------------------------------------------------------------------------
//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();//begin to draw
    texture(img);
    vertex(40,80,0,0);//4頂點,裁出2三角形
    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;
void setup(){
  size(400,400,P3D);
  img = loadImage("chessboard.png");
  textureMode(NORMAL);
}
void draw(){
  camera(mouseX,200,mouseY,mouseX,200,mouseY-110,0,1,0);//攝影機【往前方看】左右前後移動
  background(128);
  beginShape();//正前方z座標0
    texture(img);
    vertex(0,0,0,0,0);//x,y,z,u,v
    vertex(400,0,0,1,0);
    vertex(400,400,0,1,1);
    vertex(0,400,0,0,1);
  endShape();
  beginShape();//左方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();
}
--------------------------------------------------------------------------------------------
//week13-5-camera-keyPressed-keyCod-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-110,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);//x,y,z,u,v
    vertex(400,0,0,1,0);
    vertex(400,400,0,1,1);
    vertex(0,400,0,0,1);
  endShape();
  beginShape();//左方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();
}



---------------------------------------------------------------------------------------------
//week13-6-combine-all-movie-capture-pimage-camera-sin-cos-P3D
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();//forward wall
    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();
}

沒有留言:

張貼留言