| | |
| | | bool ret = false; |
| | | |
| | | Line red_line; |
| | | const int red_lines[][2] = {{0, 8}}; |
| | | int red_lines[2][2]; |
| | | int red_line_num = 0; |
| | | |
| | | if (map->num == 10) { |
| | | red_lines[0][0] = 0; |
| | | red_lines[0][1] = 8; |
| | | red_lines[1][0] = 8; |
| | | red_lines[1][1] = 9; |
| | | red_line_num = 2; |
| | | } else { |
| | | red_lines[0][0] = 0; |
| | | red_lines[0][1] = 8; |
| | | red_line_num = 1; |
| | | } |
| | | |
| | | Line frontAxle, rearAxle; |
| | | |
| | | MakeLine(&frontAxle, &car->carXY[car->left_front_tire[TIRE_OUTSIDE]], &car->carXY[car->right_front_tire[TIRE_OUTSIDE]]); |
| | | MakeLine(&rearAxle, &car->carXY[car->left_rear_tire[TIRE_OUTSIDE]], &car->carXY[car->right_rear_tire[TIRE_OUTSIDE]]); |
| | | |
| | | for (int i = 0; i < sizeof(red_lines) / sizeof(red_lines[0]); ++i) { |
| | | for (int i = 0; i < red_line_num; ++i) { |
| | | MakeLine(&red_line, &map->point[red_lines[i][0]], &map->point[red_lines[i][1]]); |
| | | if (IntersectionOf(red_line, frontAxle) == GM_Intersection || |
| | | IntersectionOf(red_line, rearAxle) == GM_Intersection) { |
| | |
| | | |
| | | Polygon carBody, map2; |
| | | PointF vPoint = Calc3Point(map->point[8], map->point[0], DistanceOf(map->point[8], map->point[7]), 'R'); |
| | | PointF vPoint2; |
| | | |
| | | if (map->num == 10) { |
| | | vPoint2 = Calc3Point(map->point[8], map->point[9], DistanceOf(map->point[8], map->point[7]), 'L'); |
| | | } |
| | | |
| | | map2.num = 4; |
| | | map2.point = (PointF *)malloc(map2.num * sizeof(PointF)); |
| | | |
| | | MakePolygon(&map2, {vPoint, map->point[0], map->point[7], map->point[8]}); |
| | | if (map->num == 9) |
| | | MakePolygon(&map2, {vPoint, map->point[0], map->point[8], map->point[7]}); |
| | | else |
| | | MakePolygon(&map2, {vPoint, map->point[0], map->point[9], vPoint2}); |
| | | |
| | | carBody.num = car->bodyNum; |
| | | carBody.point = (PointF *)malloc(carBody.num * sizeof(PointF)); |