2016年5月12日 星期四

Week 12,02160261,鄧安倫

Week 12


2016/5/12

1.期末題目:跳舞
https://www.youtube.com/watch?v=jLo0D8IYXXw

2.泡泡老鼠遊戲範例

產生球
import SimpleOpenNI.*;
SimpleOpenNI openni;
void setup(){
  size(640, 400);
  openni = new SimpleOpenNI(this);
  openni.enableRGB();
  openni.enableDepth();
  openni.enableUser();
}
void stup(){
  openni = new SimpleOpenNI(this);
  openni.enableRGB();
  openni.enableDepth();
  openni.enableUser();
}
void draw(){

  openni.update();
  background(255);
  image(openni.userImage(), 0, 0, 300, 200);
  int [] userList = openni.getUsers();
  PVector pos = new PVector (0, 0, 0);
  for(int userID : userList){
    openni.getJointPositionSkeleton(userID, SimpleOpenNI.SKEL_LEFT_HAND, pos);
  }
  ellipse(pos.x, pos.y, 50, 50);
  println(pos);
}
void onNewUser(SimpleOpenNI openni, int userId){
  openni.startTrackingSkeleton(userId);
}

----------------------------------------------------------------------------------------------------
import SimpleOpenNI.*;
SimpleOpenNI openni;
void setup(){
  size(640, 400);
  openni = new SimpleOpenNI(this);
  openni.enableRGB();
  openni.enableDepth();
  openni.enableUser();
}
void stup(){
  openni = new SimpleOpenNI(this);
  openni.enableRGB();
  openni.enableDepth();
  openni.enableUser();
}
float Xpos(PVector pos){
  return width/2 + pos.x*500/pos.z;
}
float Ypos(PVector pos){
  return height/2 - pos.y*500/pos.z;
}
void draw(){
  
  openni.update();
  background(255);
  image(openni.userImage(), 0, 0, 640, 480);
  PVector pos = new PVector (0, 0, 0);
  int [] userList = openni.getUsers();
    for(int userID : userList){
      openni.getJointPositionSkeleton(userID, SimpleOpenNI.SKEL_LEFT_HAND, pos);
      openni.convertRealWorldToProjective(pos, pos);
      fill(0,0,255);ellipse(pos.x, pos.y, 50, 50);
      openni.getJointPositionSkeleton(userID, SimpleOpenNI.SKEL_RIGHT_HAND, pos);
      openni.convertRealWorldToProjective(pos, pos);
      fill(255,0,0);ellipse(pos.x, pos.y, 50, 50);
      openni.getJointPositionSkeleton(userID, SimpleOpenNI.SKEL_HEAD, pos);
      openni.convertRealWorldToProjective(pos, pos);
      fill(255,255,0);ellipse(pos.x, pos.y, 50, 50);

    }
  //ellipse(Xpos(pos), Ypos(pos), 50, 50);
  //ellipse(pos.x, pos.y, 50, 50);
  //println(pos);
}
void onNewUser(SimpleOpenNI openni, int userId){
  openni.startTrackingSkeleton(userId);
}

----------------------------------------------------------------------------------------------------
import SimpleOpenNI.*;
SimpleOpenNI openni;
void setup(){
  size(640, 400);
  openni = new SimpleOpenNI(this);
  openni.enableRGB();
  openni.enableDepth();
  openni.enableUser();
  bg=loadImage("bg.jpg");
}
float Xpos(PVector pos){
  return width/2 + pos.x*500/pos.z;
}
float Ypos(PVector pos){
  return height/2 - pos.y*500/pos.z;
}
PImage bg;
void draw(){
  openni.update();
  background(255);
  image(bg, 0, 0, 640, 480);
  image(openni.userImage(), 0, 0, 64, 48);
  PVector pos = new PVector (0, 0, 0), hand1 = new PVector(0, 0, 0), hand2 = new PVector(0, 0, 0);
  int [] userList = openni.getUsers();
    for(int userID : userList){
      openni.getJointPositionSkeleton(userID, SimpleOpenNI.SKEL_LEFT_HAND, pos);
      openni.convertRealWorldToProjective(pos, pos);
      fill(0,0,255);ellipse(pos.x, pos.y, 50, 50); 
      hand1.set(pos);
      hand1.z = 0;
      fill(0,0,255);ellipse(pos.x/10, pos.y/10, 5, 5);
      openni.getJointPositionSkeleton(userID, SimpleOpenNI.SKEL_RIGHT_HAND, pos);
      openni.convertRealWorldToProjective(pos, pos);
      fill(255,0,0);ellipse(pos.x/10, pos.y/10, 5, 5);
      fill(255,0,0);ellipse(pos.x, pos.y, 50, 50);
      hand2.set(pos);
      hand2.z=0;
    }
    PVector mouse1=new PVector(mouseX,mouseY);
    if(PVector.dist(mouse1,hand1) <100 || PVector.dist(mouse1,hand2)<100){
      ellipse(mouseX,mouseY,200,200);
    }
}
void onNewUser(SimpleOpenNI openni, int userId){
  openni.startTrackingSkeleton(userId);
}

沒有留言:

張貼留言