code: private static void reflect(Tuple2d p, Tuple2d base, double a, double b) {
          double x = a * (p.x - base.x) + b * (p.y - base.y) + base.x;
          double y = b * (p.x - base.x) - a * (p.y - base.y) + base.y;
          p.x = x;
          p.y = y;
      }
docs: Reflect a point (p) in a line formed of 'base', 'a', and 'b'.
  
  @param p    point to reflect
  @param base base of the refection source
  @param a    a reflection coef
  @param b    b reflection coef