顯示具有 Week14 標籤的文章。 顯示所有文章
顯示具有 Week14 標籤的文章。 顯示所有文章

2015年6月15日 星期一

期末作業-進度

Let's share color!

構思
在Youtube找到影片:
2011大葉大學14屆視傳系形象長片-視界交互【點點人3主打】
https://www.youtube.com/watch?v=_8E6w0irTQE






看到這個影片產生了將它做成互動軟體的想法,偵測到人利用圓點印出,能多人一起使用,每個人都能有自己的顏色,並且能分享自己的顏色給對方





設計過程:

開始步驟:
  1. 如何印出點點人?
  2. 人如何有顏色?
  3. 如何互相變顏色?




步驟1.印出點點人






步驟2.人如何有顏色
先用矩陣宣告顏色

color[]       userClr = new color[]{ color(255,0,0),
                                     color(0,255,0),
                                     color(0,0,255),
                                     color(255,255,0),
                                     color(255,0,255),
                                     color(0,255,255)
                                   };


將人物的點點填入顏色
  blob_array[index] = 5; //矩陣裡六個顏色
        //fill(GRAY);  這邊是原本還沒加入彩色時先令他為灰階
         fill(userClr[ (userMap[index] - 1) % userClr.length ], 50);  //填入顏色矩陣的色彩

預設第一人為紅色

偵測到第二個人
預設第二人為綠色


第三人為藍色,第四人為黃色,第五人為紫紅色,第六人為淡藍色。









步驟3.如何互相改變顏色?
Let's share color!



當紅色的人碰到綠色的人時,碰到的部分會變成紅色,慢慢地整個人會變成紅色。
當紅色的人不再接觸後,原本的綠色人會變成紅色,而原本紅色的人會變成下一個顏色。











這就是分享顏色!!!!!!!!


2015年6月1日 星期一

許佳欣_MYO介紹

MYO

透過MYO可以得知手臂肌肉的狀態,所以可以任意的透過肌肉活動狀態控制任何軟體硬體!



********Myo manager

在畫面右下方可以看到小圓球,這個可以顯示每次使用者所在使用狀態



MYO必須透過manager才能關機!



********Myo 導覽影片


********processing 範例1 :判斷手勢並輸出結果


********processing 範例2:肌電圖


********processing 範例3:判斷手勢並以圖片顯示


                                     

********五種手勢,開掌、中指與大拇快速指點兩下、握拳、手掌內向、手掌向外




WEEK14




賽車遊戲













PImage imgCar;

float angle =0,dx=0,dy=0,vel=1;
void setup(){
  size(800,600,P3D);
  imgCar = loadImage("car.png");
}
void draw(){
  background(255);
  for(int i =-1;i<=8;i++){
    for(int j=-1;j<=6;j++){
      rect(i*100+dx%100,j*100+dy%100,100,100);
    }
  }
  pushMatrix();
    translate(width/2, height/2);
    rotateZ(angle);
    image(imgCar, -100,-100,200,200);
  popMatrix();
  dx=-vel*cos(angle);
  dy=-vel*sin(angle);
}
void mouseMoved(){
  int x=mouseX-pmouseX;
  int y=mouseY-pmouseY;
  if(x>0) angle+=1/40.0;
  if(x<0) angle-=1/40.0;
}
void keyPressed(){
  if(key=='l')angle++;
  if(key=='r')angle--;
  if(keyCode==UP)vel*=1.1;
  if(keyCode==DOWN)vel*=0.9;
}

2015年5月25日 星期一

WEEK14

 
float angle=0;
void setup(){
  size(800, 600, P3D);
}

void draw(){
  background(255);
  pushMatrix();
    translate(width/2, height/2);
    rotateZ(angle/180.0);
    rect(0, 0, 100, 100);
  popMatrix();
}

void mouseMoved(){
  int x= mouseX-pmouseX;
  int y= mouseY-pmouseY;
  if(x>0) angle+=1;
  if(x<0) angle-=1;
}

void keyPressed(){
  if(key=='l') angle++;
  if(key=='r') angle--;
}

import kinect4WinSDK.Kinect;
import kinect4WinSDK.SkeletonData;
PImage imgCar;
Kinect kinect;
ArrayList <SkeletonData> bodies;
float angle=0, dX=0, dY=0, vel=1;
void setup(){
  size(640, 480, P3D);
  background(0);
  kinect= new Kinect(this);
  smooth();
  bodies= new ArrayList<SkeletonData>();
  imgCar= loadImage("red.png");
}

void draw(){
  background(0);
  image(kinect.GetImage(), 320, 0, 320, 240);
  image(kinect.GetDepth(), 320, 240, 320, 240);
  image(kinect.GetMask(), 0, 240, 320, 240);
  for(int i=0;i<bodies.size();i++){
    drawSkeleton(bodies.get(i));
    drawPosition(bodies.get(i));
  }
  
  
  pushMatrix();
    translate(width/2, height/2);
    rotateZ(angle);
    image(imgCar, -100, -50, 200, 100);
  popMatrix();
}

void drawPosition(SkeletonData _s){
  noStroke();
  fill(0, 100, 255);
  //need to add//
}


void mouseMoved(){
  int x= mouseX-pmouseX;
  int y= mouseY-pmouseY;
  if(x>0) angle+=1/40.0;
  if(x<0) angle-=1/40.0;
}

void keyPressed(){
  if(key=='l') angle++;
  if(key=='r') angle--;
  if(keyCode==UP) vel*=1.1;
  if(keyCode==DOWN) vel*=0.9;
  println("vel:"+vel);
}


WEEK14

程式碼:




PImage imgCar;
float angle =0,dx=0,dy=0,vel=1;
void setup(){
  size(800,600,P3D);
  imgCar = loadImage("lambo.png");
}
void draw(){
  background(255);
  for(int i =-1;i<=8;i++){
    for(int j=-1;j<=6;j++){
      rect(i*100+dx%100,j*100+dy%100,100,100);
    }
  }
  pushMatrix();
    translate(width/2, height/2);
    rotateZ(angle);
    image(imgCar, -100,-100,200,200);
  popMatrix();
  dx=-vel*cos(angle);
  dy=-vel*sin(angle);
}
void mouseMoved(){
  int x=mouseX-pmouseX;
  int y=mouseY-pmouseY;
  if(x>0) angle+=1/40.0;
  if(x<0) angle-=1/40.0;
}
void keyPressed(){
  if(key=='l')angle++;
  if(key=='r')angle--;
  if(keyCode==UP)vel*=1.1;
  if(keyCode==DOWN)vel*=0.9;
}

Week14

滑鼠旋轉方塊
float angle=0;
void setup(){
  size(800, 600, P3D);
}

void draw(){
  background(255);
  pushMatrix();
    translate(width/2, height/2);
    rotateZ(angle/180.0);
    rect(0, 0, 100, 100);
  popMatrix();
}

void mouseMoved(){
  int x= mouseX-pmouseX;
  int y= mouseY-pmouseY;
  if(x>0) angle+=1;
  if(x<0) angle-=1;
}

void keyPressed(){
  if(key=='l') angle++;
  if(key=='r') angle--;
}

賽車遊戲
PImage imgCar;
float angle =0,dx=0,dy=0,vel=1;
void setup(){
  size(800,600,P3D);
  imgCar = loadImage("car.png");
}
void draw(){
  background(255);
  for(int i =-1;i<=8;i++){
    for(int j=-1;j<=6;j++){
      rect(i*100+dx%100,j*100+dy%100,100,100);
    }
  }
  pushMatrix();
    translate(width/2, height/2);
    rotateZ(angle);
    image(imgCar, -100,-100,200,200);
  popMatrix();
  dx=-vel*cos(angle);
  dy=-vel*sin(angle);
}
void mouseMoved(){
  int x=mouseX-pmouseX;
  int y=mouseY-pmouseY;
  if(x>0) angle+=1/40.0;
  if(x<0) angle-=1/40.0;
}
void keyPressed(){
  if(key=='l')angle++;
  if(key=='r')angle--;
  if(keyCode==UP)vel*=1.1;
  if(keyCode==DOWN)vel*=0.9;
}


Week 14



PImage imgCar;
float angle =0,dx=0,dy=0,vel=1;
void setup(){
  size(800,600,P3D);
  imgCar = loadImage("lambo.png");
}
void draw(){
  background(255);
  for(int i =-1;i<=8;i++){
    for(int j=-1;j<=6;j++){
      rect(i*100+dx%100,j*100+dy%100,100,100);
    }
  }
  pushMatrix();
    translate(width/2, height/2);
    rotateZ(angle);
    image(imgCar, -100,-100,200,200);
  popMatrix();
  dx=-vel*cos(angle);
  dy=-vel*sin(angle);
}
void mouseMoved(){
  int x=mouseX-pmouseX;
  int y=mouseY-pmouseY;
  if(x>0) angle+=1/40.0;
  if(x<0) angle-=1/40.0;
}
void keyPressed(){
  if(key=='l')angle++;
  if(key=='r')angle--;
  if(keyCode==UP)vel*=1.1;
  if(keyCode==DOWN)vel*=0.9;
}

第十四週



第一步驟:
打開FAAST ,然後設定初設定
























第二步驟:打上程式碼.跟Processing做連結。
import kinect4WinSDK.Kinect;
import kinect4WinSDK.SkeletonData;
PImage imgCar;
Kinect kinect;
ArrayList <SkeletonData> bodies;
float angle=0, dX=0, dY=0, vel=1;
void setup(){
  size(640, 480, P3D);
  background(0);
  kinect= new Kinect(this);
  smooth();
  bodies= new ArrayList<SkeletonData>();
  imgCar= loadImage("red.png");
}

void draw(){
  background(0);
  image(kinect.GetImage(), 320, 0, 320, 240);
  image(kinect.GetDepth(), 320, 240, 320, 240);
  image(kinect.GetMask(), 0, 240, 320, 240);
  for(int i=0;i<bodies.size();i++){
    drawSkeleton(bodies.get(i));
    drawPosition(bodies.get(i));
  }
  
  
  pushMatrix();
    translate(width/2, height/2);
    rotateZ(angle);
    image(imgCar, -100, -50, 200, 100);
  popMatrix();
}

void drawPosition(SkeletonData _s){
  noStroke();
  fill(0, 100, 255);
  //need to add//
}


void mouseMoved(){
  int x= mouseX-pmouseX;
  int y= mouseY-pmouseY;
  if(x>0) angle+=1/40.0;
  if(x<0) angle-=1/40.0;
}

void keyPressed(){
  if(key=='l') angle++;
  if(key=='r') angle--;
  if(keyCode==UP) vel*=1.1;
  if(keyCode==DOWN) vel*=0.9;
  println("vel:"+vel);
}

第十四週 利用FAAST搭配Processing 做一個體感賽車遊戲

賽車遊戲

一開始利用FAAST去控制賽車的左轉右轉
利用左右手的骨架去辨識要控制的方向


利用FAAST搭配Processing去控制Processing裡面的方塊轉動
把方塊當成賽車的方向盤那樣去轉動
先測試看看行不行
可以的話就實際套用到方向盤上面就會有同樣的效果
發現利用FAAST的骨架捕捉可以完美的在Processing裡面控制方塊
最後就可以把Processing車子利用FAAST來控制
前進加速 後退減速 左轉控制 右轉控制
賽車遊戲就完成!!!!!!!!!!!

程式碼如下---------------------------------------------------------------------------程式碼如下
PImage imgCar;
float angle=0, dX=0, dY=0, vel=1;
void setup(){
  size(800,600,P3D);
  imgCar=loadImage("car.png");
}
void draw(){
  background(255);
  for(int i=-1;i<=8;i++){
    for(int j=-1;j<=6;j++){
      rect(i*100+dX%100,j*100+dY%100,100,100);
    }
  }
  pushMatrix();
    translate(width/2, height/2);
    rotateZ(angle);
    image(imgCar,-100,-50,200,100);
  popMatrix();
  dX-=vel*cos(angle);
  dY-=vel*sin(angle);
}
void mouseMoved(){
  int x=mouseX-pmouseX;
  int y=mouseY-pmouseY;
  if(x>0) angle+=1/40.0;
  if(x<0) angle-=1/40.0;
}
void keyPressed(){
  if(key=='l') angle+=1/40.0;
  if(key=='r') angle-=1/40.0;
  if(keyCode==UP) vel*=1.1;
  if(keyCode==DOWN) vel*=0.9;
  println(vel);
}