From 08e28643083ff1bee05ad872c98c708dc16dda35 Mon Sep 17 00:00:00 2001 From: fctom1215 <fctom1215@outlook.com> Date: 星期一, 26 四月 2021 13:07:04 +0800 Subject: [PATCH] 适应河南测试反馈,倒库,侧方,判定由挡位改变触发,坡起增加上方点。 --- lib/src/main/cpp/test_items/stop_and_start.cpp | 27 ++++++++++++++++++++++++--- 1 files changed, 24 insertions(+), 3 deletions(-) diff --git a/lib/src/main/cpp/test_items/stop_and_start.cpp b/lib/src/main/cpp/test_items/stop_and_start.cpp index 12e8000..672c0ad 100644 --- a/lib/src/main/cpp/test_items/stop_and_start.cpp +++ b/lib/src/main/cpp/test_items/stop_and_start.cpp @@ -216,14 +216,27 @@ 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) { @@ -285,11 +298,19 @@ 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)); -- Gitblit v1.8.0