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/area_exam.cpp | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 55 insertions(+), 0 deletions(-) diff --git a/lib/src/main/cpp/test_items/area_exam.cpp b/lib/src/main/cpp/test_items/area_exam.cpp index e9bee0c..819910b 100644 --- a/lib/src/main/cpp/test_items/area_exam.cpp +++ b/lib/src/main/cpp/test_items/area_exam.cpp @@ -43,6 +43,61 @@ ExecuteExam(CurrExamMapIndex, AreaMapList, car, CarModelList, speed, moveDirect, azimuth, rtkTime); } +void DistanceOfTire2X(std::vector<double> &array, const car_model *car, std::vector<Line> line_set) +{ + double ld = 100, rd = 100; + + array.clear(); + + for (auto line = line_set.begin(); line != line_set.end(); line++) { + double ld_t = 100, rd_t = 100; + double d; + if (VerticalPointOnLine(car->carXY[car->left_front_tire[TIRE_OUTSIDE]], *line)) { + d = DistanceOf(car->carXY[car->left_front_tire[TIRE_OUTSIDE]], *line); + if (d < ld_t) { + ld_t = d; + } + } + if (VerticalPointOnLine(car->carXY[car->left_rear_tire[TIRE_OUTSIDE]], *line)) { + d = DistanceOf(car->carXY[car->left_rear_tire[TIRE_OUTSIDE]], *line); + if (d < ld_t) { + ld_t = d; + } + } + + if (VerticalPointOnLine(car->carXY[car->right_front_tire[TIRE_OUTSIDE]], *line)) { + d = DistanceOf(car->carXY[car->right_front_tire[TIRE_OUTSIDE]], *line); + if (d < rd_t) { + rd_t = d; + } + } + if (VerticalPointOnLine(car->carXY[car->right_rear_tire[TIRE_OUTSIDE]], *line)) { + d = DistanceOf(car->carXY[car->right_rear_tire[TIRE_OUTSIDE]], *line); + if (d < rd_t) { + rd_t = d; + } + } + + if (isEqual2(ld_t, rd_t)) { + if (!isEqual(ld_t, 100)) { + if (rd_t < rd) + rd = rd_t; + if (ld_t < ld) + ld = ld_t; + } + } else if (ld_t > rd_t) { + if (rd_t < rd) + rd = rd_t; + } else { + if (ld_t < ld) + ld = ld_t; + } + } + + array.push_back(ld); + array.push_back(rd); +} + static void DetectEnterOrExitMap(const car_model *car, LIST_CAR_MODEL &CarModelList, LIST_AREA_MAP &mapList) { if (CurrExamMapIndex < 0) { -- Gitblit v1.8.0