1. 使用PVector叫出圖形
2.
PVector user; 1.宣告PVector,讓setup()跟draw()用的到
void setup()
{
size(600,600);
user = new PVector(10,20); 2.只在setup()做一次
}
void draw()
{
background(255);
ellipse(user.x,user.y,20,20); 3.使用PVector的值
}

3.可以拉出線
PVector user;
PVector Y;
void setup()
{
size(600,400);
user = new PVector(100,300);
Y=new PVector(100,300);
}
void draw()
{
background(255);
line(user.x,user.y,Y.x,Y.y);
textSize(40);
fill(255,0,0); text("Y",Y.x-17,Y.y+20);
fill(255);ellipse(user.x,user.y,20,20);
}
void mouseDragged()
{
user.x=mouseX;
user.y=mouseY;
}
void mouseReleased()
{
}
4.射出彈珠
PVector user;
PVector Y , v = null; //V是速率
void setup()
{
size(600,400);
user = new PVector(100,300);
Y=new PVector(100,300);
}
void draw()
{
background(255);
line(user.x,user.y,Y.x,Y.y);
textSize(40);
fill(255,0,0); text("Y",Y.x-17,Y.y+20);
fill(255);ellipse(user.x,user.y,20,20);
if(v!=null) user.add(v);
}
void mouseDragged()
{
user.x=mouseX;
user.y=mouseY;
}
void mouseReleased()
{
PVector diff =PVector.sub(Y,user);
v=diff.div(10);
}
5.射出的彈珠加上重力加速度
PVector user;
PVector Y , v = null; //V是速率
void setup()
{
size(600,400);
user = new PVector(100,300);
Y=new PVector(100,300);
}
void draw()
{
background(255);
if(mousePressed)line(user.x,user.y,Y.x,Y.y);
textSize(40);
fill(255,0,0); text("Y",Y.x-17,Y.y+20);
fill(255);ellipse(user.x,user.y,20,20);
if(v!=null)
{
user.add(v);
v.y+=0.98;
}
}
void mouseDragged()
{
user.x=mouseX;
user.y=mouseY;
v=null;
}
void mouseReleased()
{
PVector diff =PVector.sub(Y,user);
v=diff.div(4);
}
6.監視器回傳搖桿值
7.P語言畫出搖桿位置
arduino:
void setup()
{
pinMode(2, INPUT_PULLUP);
Serial.begin(9600);
}
void loop()
{
int x=analogRead(A0);
int y=analogRead(A1);
int sw=digitalRead(2);
Serial.write(x/4);
Serial.write(y/4);
Serial.write(sw);
delay(20);
}
processing:
import processing.serial.*;
Serial myPort;
void setup(){
size(256,256);
myPort = new Serial(this,"COM3",9600);
}
int ballX=0,ballY=0;
void draw()
{
background(255);
if(myPort.available()>=3){
int x=myPort.read();
int y=myPort.read();
int sw=myPort.read();
ballX=x;
ballY=y;
}
ellipse(ballX,ballY,10,10);
}






沒有留言:
張貼留言