Beispiel #1
0
void plotrepulsor(rep r)
{
  float j;
  
  for (j=0.0; j<2.0*pi; j=j+2.0*pi/8) {
    plotarrow(window1,r.pos,Vmult(r.str+r.dstr*sin(r.off+frame*r.fre),Cart(80.0,j)));
  }
}  
Beispiel #2
0
vector wibbly(part *pa)
{
  pa->walkr=pa->walkr*walkrdamp+pa->walkdr;
  pa->walkt=pa->walkt+pa->walkdt;
  pa->walkdr=pa->walkdr*walkdrdamp+(drand48()*2-1)*walkdrrnd;
  pa->walkdt=pa->walkdt*walkdtdamp+(drand48()*2-1)*walkdtrnd;
  return Cart(pa->walkr,pa->walkt);
}
Beispiel #3
0
void movepart(part* pa)
{
  vector tmp;
  
  tmp=forceat(pa->pos);
  brownian(pa);
  pa->vel=Vadd(Vmult(dampening,pa->vel),Vmult(strength,tmp));
  pa->walkr=pa->walkr*walkdamp+(drand48()*2-1)*walkrrnd;
  pa->walkt=pa->walkt+(drand48()*2-1)*walktrnd;
  pa->pos=Vadd(pa->pos,Vadd(pa->vel,Cart(pa->walkr,pa->walkt)));
}
Beispiel #4
0
BoostCart::BoostCart(int stage) {
  const Config& c = Config::GetInstance();
  this->stage = stage;
  K = c.K;
  carts.reserve(K);
  for (int i = 0; i < K; i++) {
    // distribute the landmarks
    carts.push_back(Cart(stage, i%c.landmark_n));
  }
  const int landmark_n = c.landmark_n;
  const int m = K*(1 << (c.tree_depth - 1)); // K * leafNume
  w = Mat_<double>::zeros(m, 2 * landmark_n);
}