From 46f56f26bfcc6ce26ffd8132ee11bf019eef3289 Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期一, 13 四月 2020 11:48:28 +0800 Subject: [PATCH] 计算边距 --- lib/src/main/cpp/test_items/driving_curve.cpp | 26 ++++++++++++++++++++++++++ 1 files changed, 26 insertions(+), 0 deletions(-) diff --git a/lib/src/main/cpp/test_items/driving_curve.cpp b/lib/src/main/cpp/test_items/driving_curve.cpp index 24ad383..e292326 100644 --- a/lib/src/main/cpp/test_items/driving_curve.cpp +++ b/lib/src/main/cpp/test_items/driving_curve.cpp @@ -9,6 +9,7 @@ #include "../utils/xconvert.h" #include "../master/comm_if.h" #include "../native-lib.h" +#include "area_exam.h" #include <vector> #include <cstdlib> @@ -60,6 +61,10 @@ { Polygon tireRect; int who = 0; + vector<double> dtox; + vector<Line> line_set; + int s; + MakePolygon(&tireRect, {car->carXY[car->left_front_tire[TIRE_OUTSIDE]], car->carXY[car->right_front_tire[TIRE_OUTSIDE]], car->carXY[car->right_rear_tire[TIRE_OUTSIDE]], @@ -75,6 +80,27 @@ // 鏇存柊杞﹀熬鎵弿绾� UpdateEndLine(false, &scanWindow, map, map2, &tireRect); + // 璁$畻杈硅窛 + s = scanWindow.leftStart; + for (int e = scanWindow.leftStart - 1; e >= scanWindow.leftEnd; --e) { + Line redLine; + MakeLine(&redLine, &map->point[s], &map->point[e]); + line_set.push_back(redLine); + s = e; + } + + s = scanWindow.rightStart; + for (int e = scanWindow.rightStart - 1; e >= scanWindow.rightEnd; --e) { + Line redLine; + MakeLine(&redLine, &map2->point[s], &map2->point[e]); + line_set.push_back(redLine); + s = e; + } + + DistanceOfTire2X(dtox, car, line_set); + + MA_SendDistance(dtox[0], dtox[1]); + DEBUG("scanWindow leftStart %d leftEnd %d rightStart %d rightEnd %d", scanWindow.leftStart, scanWindow.leftEnd, scanWindow.rightStart, scanWindow.rightEnd); if (CrashRedLine(map, map2, car, &scanWindow, who)) { -- Gitblit v1.8.0