return true;
} else if (0 < a_1 && a_1 <= M_PI/2) { // left front
BicycleCar z(*this); // zone border
+ z.h(e);
+ h_d = bc.h() - this->h();
z.rotate(this->ccl().x(), this->ccl().y(), h_d);
// assert z.h() == bc.h()
if (bc.y() == z.y() && bc.x() == z.x()) // bc on zone border
return true;
} else if (M_PI/2 < a_1 && a_1 <= M_PI) { // left rear
BicycleCar z(*this); // zone border
+ z.h(e);
+ h_d = bc.h() - this->h();
z.rotate(this->ccl().x(), this->ccl().y(), h_d);
// assert z.h() == bc.h()
if (bc.y() == z.y() && bc.x() == z.x()) // bc on zone border
return true;
} else if (0 > a_1 && a_1 >= -M_PI/2) { // right front
BicycleCar z(*this); // zone border
+ z.h(b);
+ h_d = bc.h() - this->h();
z.rotate(this->ccr().x(), this->ccr().y(), h_d);
// assert z.h() == bc.h()
if (bc.y() == z.y() && bc.x() == z.x()) // bc on zone border
return true;
} else if (-M_PI/2 > a_1 && a_1 >= -M_PI) { // right rear
BicycleCar z(*this); // zone border
+ z.h(b);
+ h_d = bc.h() - this->h();
z.rotate(this->ccr().x(), this->ccr().y(), h_d);
// assert z.h() == bc.h()
if (bc.y() == z.y() && bc.x() == z.x()) // bc on zone border