2025年5月15日 星期四

12750300_week13

 課堂作業一

//sketch_Libary_Manage Libaries

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

}




課堂作業二

//電腦圖學會圖時,會設定camara的相關係數

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

}



課堂作業三

//先加貼圖再加進去

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

}




課堂作業四


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

}



課堂作業五


//修改自week03_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(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();

}




作業五改良


//修改自week03_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(){

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

}





課堂作業六


//把今天教的都加進來

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

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

}



沒有留言:

張貼留言