/// <summary>
 /// Move the particle.
 /// </summary>
 /// <param name="timeEclipse">s</param>
 public void Move(Vector acc, double timeEclipse)
 {
     double magnitude = acc.GetXYMagnitude();
     double theta = ParseAzimuth(acc[3]) / 180.0 * Math.PI + ContinuousUniform.Sample(-ParticleFilter.ANG_EPS, ParticleFilter.ANG_EPS);
     double rand_magitude = magnitude + magnitude * ContinuousUniform.Sample(-ParticleFilter.ACC_EPS, ParticleFilter.ACC_EPS);
     double ax = Math.Cos(theta) * rand_magitude;
     double ay = Math.Sin(theta) * rand_magitude;
     X += (2 * Vx + ax) * timeEclipse / 2.0;
     Y += (2 * Vy + ay) * timeEclipse / 2.0;
     Vx += ax * timeEclipse;
     Vy += ay * timeEclipse;
 }