Processing 处理跟踪控制
处理代码如下:Processing 处理跟踪控制,processing,Processing,处理代码如下: int maxCircle = 200; float minDistance=2; float distance; Circle [] circles= new Circle[maxCircle]; void setup(){ size(800,800); smooth(); for(int i=0;i<maxCircle;i++){ circles[i] = new Circle(random(width),random(height),random
int maxCircle = 200;
float minDistance=2;
float distance;
Circle [] circles= new Circle[maxCircle];
void setup(){
size(800,800);
smooth();
for(int i=0;i<maxCircle;i++){
circles[i] = new Circle(random(width),random(height),random(2,20));
}
}
void draw(){
background(255,255);
for(int i=0;i<maxCircle;i++){
circles[i].update(width,height);
for(int j=0;j<maxCircle;j++){
distance = dist(circles[i].x,circles[i].y,circles[j].x,circles[j].y);
if(distance<minDistance){
stroke(0,50);
noFill();
line(circles[i].x,circles[i].y,circles[j].x,circles[j].y);}}
circles[i].display();
}
}
void mouseMoved(){
for(int i = 0; i<maxCircle;i++){
circles[i].x+=(mouseX-circles[i].x)*.2;
circles[i].y+=(mouseX-circles[i].y)*.2;}}
class Circle{
float x,y,vx,vy,r,speed;
Circle(float tempx, float tempy, float tempr){
x=tempx;
y=tempy;
vx=random(-1,1);
vy=random(-1,1);
r=tempr;
}
void update(int w,int h){
x+=vx;
y+=vy;
if(x<r || x>w-r){
vx*=-1;};
if(y<r || y>h-r){
vy*=-1;};
}
void display(){
fill(0,50);
noStroke();
ellipse(x,y,r,r);
}
}
int maxCircle=200;
漂浮距离=2;
浮动距离;
圆圈[]圆圈=新圆圈[maxCircle];
无效设置(){
尺寸(800800);
光滑的();
因为(inti=0;i看起来像凯西的作品——你在加州大学洛杉矶分校吗
不管怎样,line()函数确实有效。试着将MindDistance增加到20左右,你会看到线条
Re:鼠标跟随,你告诉每个圆圈每帧移动到鼠标20%的距离。我不确定你到底想在这里做什么;你想只让鼠标附近的圆圈随鼠标移动吗?如果是,对每个圆圈对鼠标进行距离检查,如果在该距离内,则只将圆圈移到鼠标。Som例如:
void mouseMoved() {
float distance;
for(int i = 0; i<maxCircle;i++){
float mouseDist = dist(circles[i].x,circles[i].y,mouseX,mouseY);
// move toward mouse only if < 100px from mouse
if (mouseDist < 100) {
circles[i].x+=(mouseX-circles[i].x)*.05;
circles[i].y+=(mouseY-circles[i].y)*.05;
}
}
}
void mouseMoved(){
浮动距离;
对于(int i=0;i