2014年6月29日 星期日

第八週進度

第八週進度
其中作品程式碼
import de.voidplus.leapmotion.*;
LeapMotion leap;

PVector leftTool_position, rightTool_position;
PImage imgB, imgH, imgD, back;
float angleH, angleD;
float[] px = new float[10];
void setup()
{
  size(800, 560, P3D);
  leap = new LeapMotion(this);
  imageMode(CENTER);
  imgB = loadImage("up.png");
  imgH = loadImage("pair.png");
  imgD = loadImage("down.png");
  back = loadImage("back1.jpg");
}
void draw()
{
  background(back);
  int fps = leap.getFrameRate();
  for (Hand hand : leap.getHands())
  {
    Tool leftTool = hand.getLeftTool();
    leftTool_position = leftTool.getPosition();
    Tool rightTool = hand.getRightTool();
    rightTool_position = rightTool.getPosition();
    angleH = atan((rightTool_position.y-leftTool_position.y)/(rightTool_position.x-leftTool_position.x))*180/PI;

    for (int i=8;i>=0;i--)//update stack
      px[i+1]=px[i];
    px[0]=leftTool_position.x;

    pushMatrix();//up
    translate(leftTool_position.x, leftTool_position.y);
    image(imgB, 0, 0);
    pushMatrix();//hand
    translate(0, 0);
    rotate(radians(angleH-90));
    translate(58, 58.5);
    image(imgH, 0, 0);
    popMatrix();
    pushMatrix();//down
    translate(-5, 90);
    if (px[9]!=0)
      angleD = atan((leftTool_position.x-px[9])/(leftTool_position.y-leftTool_position.y+280))*180/PI;
    rotate(radians(angleD*1.5));
    translate(-14, 75);
    image(imgD, 0, 0);
    popMatrix();
    popMatrix();
  }
  if (keyPressed)
  {
    if (key == 'q' || key == 'Q')
    {
      back = loadImage("back1.jpg");
    }
    if (key == 'w' || key == 'W')
    {
      back = loadImage("back2.jpg");
    }
    if (key == 'a' || key == 'A')
    {
      imgB = loadImage("up.png");
      imgH = loadImage("pair.png");
      imgD = loadImage("down.png");
    }
    if (key == 's' || key == 'S')
    {
      imgB = loadImage("up2.png");
      imgH = loadImage("pair2.png");
      imgD = loadImage("down2.png");
    }
  }
}

void leapOnInit() {
  // println("Leap Motion Init");
}
void leapOnConnect() {
  // println("Leap Motion Connect");
}
void leapOnFrame() {
  // println("Leap Motion Frame");
}
void leapOnDisconnect() {
  // println("Leap Motion Disconnect");
}
void leapOnExit() {
  // println("Leap Motion Exit");
}

沒有留言:

張貼留言