2025年5月15日 星期四

week13_呱

 week13-1_video

import processing.video.*;


//Capture video;

Movie movie;

void setup(){

 size(640,960);

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

 movie=new Movie(this,"street.mov");

 movie.loop();

 //video.start();

}

void draw(){

 if(movie.available()) movie.read();

 image(movie,0,0);

 //if(video.available()) video.read();

 //image(video,0,0);

}




//week13-2_camera

//電腦圖學繪圖時,會設定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-3_texture

//貼圖,之後再加進去

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

}



//week13-3

//把貼圖和camrea整合在一起


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

  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

//把貼圖和camrea整合在一起


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(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

//集大成

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

  //image(video,0,0);

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

}




沒有留言:

張貼留言