コード例 #1
0
ファイル: NodeParticle.java プロジェクト: rlegendi/gs-core
  @Override
  public void move(int time) {
    if (!frozen) {
      disp.fill(0);

      Vector3 delta = new Vector3();

      repE = 0;
      attE = 0;

      if (box.viewZone < 0) repulsionN2(delta);
      else repulsionNLogN(delta);

      attraction(delta);

      // int N = neighbours.size();
      // if( N > 40 )
      // System.err.printf( "* BIG ** [%05d] rep=%05.5f att=%05.5f%n", N,
      // repE, attE );
      // else System.err.printf(
      // "  Small  [%05d] rep=%05.5f att=%05.5f%n", N, repE, attE );

      disp.scalarMult(box.force);

      len = disp.length();

      if (len > (box.area / 2)) {
        disp.scalarMult((box.area / 2) / len);
        len = box.area / 2;
      }

      box.avgLength += len;

      if (len > box.maxMoveLength) box.maxMoveLength = len;
    }
  }