2016年3月3日 星期四

02160615_成庭萱_week02

第一節課

先安裝Leap Motion
開啟Processing的範例2
下面會印出你做了什麼動作















試著自己做Leap Motion的畫面
(按H跟F鍵可以關掉視訊功能以及出現旁邊的提示)





























void setup(){
  size(640,480);
}
void draw(){
  line(mouseX,mouseY,pmouseX,pmouseY);  //畫線
}



第二節課
繼續剛剛打的程式

把線的顏色變綠色的
把變景變黑色的
void setup(){
  size(640,480);
  background(0);  //背景設為黑色
}
void draw(){
  stroke(63,191,48);  //線設為綠色
  line(mouseX,mouseY,pmouseX,pmouseY);
}


2個點

滑過去不會消失















滑過去會消失















PVector pt1,pt2;
void setup(){
  size(640,480,P3D);
  //background(0);  //滑過去不會消失
  pt1 = new PVector(0,0,0);
  pt2 = new PVector(0,0,0);
}
void draw(){
  background(0);  //滑過去會消失
  stroke(#72FF3B);
  pt2.x=pt1.x;
  pt2.y=pt1.y;

  pt1.x=mouseX;
  pt1.y=mouseY;
  line(pt1.x,pt1.y,pt1.z,pt2.x,pt2.y,pt2.z);
}


10個點
會像貪食蛇一樣















PVector [] pt = new PVector[10];
void setup(){
  size(640,480,P3D);
  for(int i=0;i<10;i++)
    pt[i] = new PVector(0,0,0);
}
void draw(){
  background(0);
  stroke(#72FF3B);
  for(int i=9;i>0;i--){
    pt[i].x=pt[i-1].x;
    pt[i].y=pt[i-1].y;
  }
  pt[0].x=mouseX;
  pt[0].y=mouseY;
  for(int i=1;i<10;i++)
    line(pt[i].x,pt[i].y,pt[i].z,pt[i-1].x,pt[i-1].y,pt[i-1].z);
}



第三節課

只有食指出現















import de.voidplus.leapmotion.*;
LeapMotion leap;
PVector [] pt = new PVector[10];
void setup(){
  size(640,480,P3D);
  for(int i=0;i<10;i++)
    pt[i] = new PVector(0,0,0);
    leap = new LeapMotion(this);
}
void draw(){
  background(0);
  stroke(#72FF3B);
  for(int i=9;i>0;i--){
    pt[i].x=pt[i-1].x;
    pt[i].y=pt[i-1].y;
  }
  for (Hand hand : leap.getHands ()) {
    for (Finger finger : hand.getFingers()) {
      switch(finger.getType()) {
        case 1:  // System.out.println("index");
          PVector now = finger.getPosition();
          pt[0].x=now.x;  //pt[0].x=mouseX;
          pt[0].y=now.y;  //pt[0].y=mouseY;
        break;
      }
    }
  }
  for(int i=1;i<10;i++)
    line(pt[i].x,pt[i].y,pt[i].z,pt[i-1].x,pt[i-1].y,pt[i-1].z);
}

五根手指頭都有















import de.voidplus.leapmotion.*;
LeapMotion leap;
PVector [][] pt = new PVector[5][100];
void setup() {
  size(640, 480, P3D);
  for (int f=0; f<5; f++) {
    for (int i=0; i<100; i++)
      pt[f][i] = new PVector(0, 0, 0);
  }
  leap = new LeapMotion(this);
  colorMode(HSB, 100);
}
void draw() {
  background(0);
  for (int f=0; f<5; f++) {
    for (int i=99; i>0; i--) {
      pt[f][i].x=pt[f][i-1].x;
      pt[f][i].y=pt[f][i-1].y;
    }
  }
  for (Hand hand : leap.getHands ()) {
    for (Finger finger : hand.getFingers ()) {
      int f=finger.getType();
      PVector now = finger.getPosition();
      pt[f][0].x=now.x;  //pt[0].x=mouseX;
      pt[f][0].y=now.y;  //pt[0].y=mouseY;
    }
  }
  for (int f=0; f<5; f++) {
    stroke(f*20, 100, 100);
    for (int i=1; i<100; i++)
      line(pt[f][i].x, pt[f][i].y, pt[f][i].z, pt[f][i-1].x, pt[f][i-1].y, pt[f][i-1].z);
  }
}

沒有留言:

張貼留言