2017年11月23日 星期四

圖學筆記Week10

1,期末專題討論

2,process3 mode anroid教學

->process3要下載 android模式
自動安裝 Android SDK NDK

->

android mode需要USB連接電腦與手機,
所以用java mode先做測試。



3.碰撞問題:

=>
寫出求碰撞以及撞到視窗邊界時候反射回去的碰撞。
此圖程式碼只要在+上滑鼠設置就基本完成!

=>附上程式碼:
void setup(){
size(500,500);
}
float ballX=250,ballY=450, ballVX=1.3, ballVY=-10;
float ball2X=250, ball2Y=50;
void draw(){
if( dist(ballX, ballY, ball2X, ball2Y)<100 ){
float cx=(ballX+ball2X)/2, cy=(ballY+ball2Y)/2;
float nx=ballX-ball2X, ny=ballY-ball2Y;
PVector N=new PVector(nx,ny);
N.normalize();
PVector v0=new PVector(ballVX, ballVY);
float len= -N.dot(v0);
v0.add(N.mult(len*2));
ellipse(cx, cy, 10,10);
stroke(0); line(ballX, ballY, ball2X, ball2Y);
stroke(255,128,0); line(cx,cy, cx+5*ballVX, cy+5*ballVY);
stroke(255,128,0); line(cx,cy, cx+5*v0.x, cy+5*v0.y);
stroke(255,0,0); line(cx,cy, cx+N.x, cy+N.y);
//return;
ballVX=v0.x; ballVY=v0.y;
}
background(255);
ballX+=ballVX; 
ballY+=ballVY;
if(ballX<50||ballX>500-50)ballVX=-ballVX;
if(ballY<50||ballY>500-50)ballVY=-ballVY;
ellipse(ballX, ballY, 100,100);
ellipse(ball2X, ball2Y,100,100);
}


--------------------------------------------------------
滑鼠設置

void mouseDragged()
{
ball2X=mouseX;ball2Y=mouseY;
}



沒有留言:

張貼留言