2016年3月3日 星期四

week02 02160120 黃冠中

import de.voidplus.leapmotion.*;

LeapMotion leap;

void setup(){
  size(640,480);
}
void draw(){
  if(mousePressed)line(mouseX,mouseY,pmouseX,pmouseY);
}





結合leap畫出每一個手指 並且有xyz軸的變化(用strokeWeight偽裝z軸)
import de.voidplus.leapmotion.*;
PVector [][]fingerPosition = new PVector[5][10];
LeapMotion leap;

void setup(){
  size(640,480);
  leap = new LeapMotion(this);
  for(int f=0;f<5;f++)for(int i=0;i<10;i++)fingerPosition[f][i]= new PVector(0,0,0);
}
void draw(){
  background(255);
  LeapmotionSetup();
  drawFinger();
}
//////////////////////////////////////////
void LeapmotionSetup(){
  int fps = leap.getFrameRate();
  for(Hand hand : leap.getHands ()){
     for(Finger finger : hand.getFingers()){
       switch(finger.getType()){
       case 0:
         fingerPosition[0][0] = finger.getPosition();
         break;
       case 1:
         fingerPosition[1][0] = finger.getPosition();
         break;
       case 2:
         fingerPosition[2][0] = finger.getPosition();
         break;
       case 3:
         fingerPosition[3][0] = finger.getPosition();
         break;
       case 4:
         fingerPosition[4][0] = finger.getPosition();
         break;
       
       }
     }
  }
  
  
}
//////////////////////////////////////////
void drawFinger(){
  for(int f=0;f<5;f++)
  for(int i=9;i>0;i--){
   fingerPosition[f][i].x = fingerPosition[f][i-1].x;
   fingerPosition[f][i].y = fingerPosition[f][i-1].y;
   fingerPosition[f][i].z = fingerPosition[f][i-1].z;
 }
 for(int f=0;f<5;f++)
  for(int i=0;i<9;i++){
    strokeWeight(fingerPosition[f][i].z*30/50+1);
    stroke(255,0,0,100-i*10);
    line(fingerPosition[f][i+1].x,fingerPosition[f][i+1].y,fingerPosition[f][i].x,fingerPosition[f][i].y);
  }
}

沒有留言:

張貼留言