【问题标题】:Processing following control处理跟随控制
【发布时间】:2012-09-09 03:40:03
【问题描述】:

处理代码如下:

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);
    }  

    } 

两个问题:

  1. 为什么线功能不起作用?

  2. 如何让圆圈跟随鼠标平滑移动(分别)而不是突然挤到一点?

【问题讨论】:

    标签: processing


    【解决方案1】:

    看起来像是凯西的作品——你在加州大学洛杉矶分校吗?

    无论如何——line() 函数确实 工作。尝试将 minDistance 增加到 20 左右,您会看到线条。

    Re:鼠标跟随,你告诉 每个 圆圈每帧移动 20% 到鼠标的距离。我不确定你到底想要什么;您是否只希望鼠标附近的圆圈随鼠标移动?如果是这样,请为每个圆圈对鼠标应用距离检查,如果圆圈在该距离内,则仅将其移向鼠标。比如:

    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;
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多