2.讓上周進度變3d
3.期中作品:腥風血雨:斷手指
上周進度在跑一次
import de.voidplus.leapmotion.*;
LeapMotion leap;
PVector [][] pt=new PVector[5][50];
void setup(){
size(640,480,P3D);
for(int f=0;f<5;f++){
for(int i=0;i<50;i++)
pt[f][i]=new PVector(0,0,0);
}
leap = new LeapMotion(this);
colorMode(HSB,100);
}
void draw(){
background(45);
//stroke(255,174,201);
//line(mouseX,mouseY,pmouseX,pmouseY);
for(int f=0;f<5;f++){
for(int i=49;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[f][0].y=now.y;
}
}
for(int f=0;f<5;f++){
stroke(f*20,100,100);
for(int i=1;i<50;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);
}
}
接下來要做出3d的圖瞜~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
要變成3d要加幾項程式
size(640,480,P3D);
要加P3D讓舞台變3d的
然後要讓畫面旋轉才有3d的感覺
translate(width/2,height/2);
rotateY(radians(frameCount));
translate(-width/2,-height/2);
所以用之前學過的trt來旋轉畫面
還要記得加[f][i].z座標
再來要做出跟visualizar類似的功能
加上
stroke(60,100,100);
for(int i=0;i<640;i+=20)
for(int j=0;j<400;j+=20)
{
noFill();rect(i,j,20,20);
}
}
畫出格線
========================================================================
做出調色盤
import de.voidplus.leapmotion.*;
LeapMotion leap;
void setup() {
size(640, 480, P3D);
leap = new LeapMotion(this);
}
void draw() {
background(255);
for (Hand hand : leap.getHands ()) {
PVector pos =hand.getPosition();
if (hand.isLeft()) {
ellipse(pos.x, pos.y, 200, 100);畫橢圓
} else if (hand.isRight()) {
rect(pos.x, pos.y, 10, 100);畫方形
}
}
}
做出調色盤及周圍顏色,達成右手棒子可變色
可以變色了~~讚!!!
import de.voidplus.leapmotion.*;
LeapMotion leap;
void setup() {
size(640, 480, P3D);
leap = new LeapMotion(this);
}
color nowColor = color(0, 0, 0);
PVector leftPos;
void draw() {
background(255);
for (Hand hand : leap.getHands ()) {
PVector pos =hand.getPosition();
if (hand.isLeft()) {
noFill();
ellipse(pos.x, pos.y, 200, 100);
fill(255, 0, 0);
ellipse(pos.x+60, pos.y-50, 60, 50);
fill(255, 255, 0);
ellipse(pos.x, pos.y-60, 60, 50);
fill(0, 255, 0);
ellipse(pos.x-80, pos.y-60, 60, 50);
fill(255, 0, 255);
ellipse(pos.x-120, pos.y, 60, 50);
leftPos =pos;
} else if (hand.isRight()) {
fill(nowColor);
rect(pos.x, pos.y, 10, 100);
println(leftPos);
println(pos);
if (dist(pos.x, pos.y, leftPos.x+60, leftPos.y-50)<30) {
nowColor = color(255, 0, 0);
}
if (dist(pos.x, pos.y, leftPos.x, leftPos.y-60)<30) {
nowColor = color(255, 255, 0);
}
if (dist(pos.x, pos.y, leftPos.x-80, leftPos.y-60)<30) {
nowColor = color(0, 255, 0);
}
if (dist(pos.x, pos.y, leftPos.x-120, leftPos.y)<30) {
nowColor = color(255, 0, 255);
}
}
}
}
沒有留言:
張貼留言