- if (this->slotSide() == LEFT)
- x0 = -b + sqrt(D);
- else
- x0 = -b - sqrt(D);
- x0 /= 2 * a;
- float x0_2 = x0;
- if (this->slotSide() == LEFT)
- x0 = std::max(x0_1, x0_2);
- else
- x0 = std::min(x0_1, x0_2);
- return new BicycleCar(x0, B->y(), B->h());
+ delta = -b + sqrt(D);
+ delta /= 2 * a;
+ float delta_2 = delta;
+ delta = -b - sqrt(D);
+ delta /= 2 * a;
+ float delta_3 = delta;
+ delta = std::max(delta_1, std::max(delta_2, delta_3));
+ return new BicycleCar(
+ B->x() - delta * cos(B->h()),
+ B->y() - delta * sin(B->h()),
+ B->h()
+ );