From b5c6c200d60aae805614495512ab24eafcce1fb9 Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期四, 02 四月 2020 17:53:45 +0800
Subject: [PATCH] 摆正考试地图
---
app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java | 75 ++++++++++++++++++++++++++++---------
1 files changed, 56 insertions(+), 19 deletions(-)
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java
index 8e8137d..187d6e5 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java
@@ -46,11 +46,13 @@
import safeluck.drive.evaluation.R;
import safeluck.drive.evaluation.bean.ExamMap;
import safeluck.drive.evaluation.bean.ExamPlatformData;
+import safeluck.drive.evaluation.bean.Point;
import safeluck.drive.evaluation.bean.RealTimeCarPos;
import safeluck.drive.evaluation.cEventCenter.CEventCenter;
import safeluck.drive.evaluation.cEventCenter.ICEventListener;
import safeluck.drive.evaluation.util.CThreadPoolExecutor;
import safeluck.drive.evaluation.util.FileUtil;
+import safeluck.drive.evaluation.util.Utils;
/**
@@ -214,13 +216,10 @@
if (canvas2 == null || bmp == null) {
return;
}
-// _mActivity.runOnUiThread(new Runnable() {
-// @Override
-// public void run() {
double base_x = 300, base_y = 20;
double max_x = 0, min_x = 0, max_y = 0, min_y = 0;
- Log.d(TAG, "DrawMap map size " + map.length + " car size " + car.length);
+ Log.d(TAG, "DrawMap map size " + map.length + " car size " + car.length+"map other length="+map_other.length);
for (int i = 0; i < map.length; i++) {
if (i == 0) {
@@ -264,20 +263,20 @@
Log.d(TAG, "DrawMap max_x " + max_x + " max_y " + max_y + " min_x " + min_x + " min_y " + min_y);
- for (int i = 0; i < car.length; i++) {
- if (max_x < car[i][0]) {
- max_x = car[i][0];
- }
- if (min_x > car[i][0]) {
- min_x = car[i][0];
- }
- if (max_y < car[i][1]) {
- max_y = car[i][1];
- }
- if (min_y > car[i][1]) {
- min_y = car[i][1];
- }
- }
+// for (int i = 0; i < car.length; i++) {
+// if (max_x < car[i][0]) {
+// max_x = car[i][0];
+// }
+// if (min_x > car[i][0]) {
+// min_x = car[i][0];
+// }
+// if (max_y < car[i][1]) {
+// max_y = car[i][1];
+// }
+// if (min_y > car[i][1]) {
+// min_y = car[i][1];
+// }
+// }
Log.d(TAG, "DrawMap max_x " + max_x + " max_y " + max_y + " min_x " + min_x + " min_y " + min_y);
@@ -291,6 +290,7 @@
}
Log.d(TAG, "DrawMap scale_x " + scale_x + " scale_y " + scale_y);
+
canvas2.drawColor(Color.WHITE);
@@ -752,6 +752,7 @@
map_id = timeCarPos.getMap_id();
List<Double> mainAnt = timeCarPos.getMain_ant();
+ Point mainPoint = new Point(mainAnt.get(0), mainAnt.get(1));
List<Integer> tire1 = timeCarPos.getLeft_front_tire();
List<Integer> tire2 = timeCarPos.getRight_front_tire();
List<Integer> tire3 = timeCarPos.getLeft_rear_tire();
@@ -857,12 +858,48 @@
if ((k % 2) == 0) {
map[map_line][0] = xys.get(k);
} else {
- double value = 0 - xys.get(k);
+ double value = xys.get(k);
Log.i(TAG, "onCEvent: map鏂板��=" + value + " 浣嶇疆锛�" + k);
map[map_line][1] = value;
map_line++;
}
}
+ Log.i(TAG,String.format("涓嬮潰寮�濮嬫棆杞紝map.length=%d",map.length));
+ Point point2 = new Point(map[0][0],map[0][1]);
+ double deg = 0.0;
+ switch (map.length){
+
+ case 8:
+ Point point1 = new Point(map[map.length-1][0],map[map.length-1][1]);
+ deg = Utils.YawOf(point2,point1);
+ deg +=270;
+ for (int k = 0; k < map.length; k++) {
+ Point point11 = new Point(map[k][0],map[k][1]);
+ Point point = Utils.rotatePoint(point11,point2,deg);
+ map[k][0] = point.getX();
+ map[k][1] = 0-point.getY();
+ Log.i(TAG,String.format("鏃嬭浆鍚庣殑鍊糾ap[%d][0]=%f,map[%d][1]=%f,deg=%f",k,map[k][0],k,map[k][1],deg));
+ }
+ break;
+ case 9:
+ break;
+ case 6:
+ break;
+ default:
+ break;
+ }
+ for (int k = 0; k < car.length; k++) {
+ Point oldPoint = new Point(car[k][0], car[k][1]);
+ Point newPoint = Utils.rotatePoint(oldPoint, point2, deg );
+ car[k][0] = newPoint.getX();
+ car[k][1] = newPoint.getY();
+
+// car[k][0] = car[k][0] - point2.getX();
+// car[k][1] = car[k][1] - point2.getY();
+// car[k][1] = -car[k][1];
+ Log.i(TAG,String.format("鏃嬭浆鍚庣殑鍊糲ar[%d][0]=%f,car[%d][1]=%f,deg=%f",k,car[k][0],k,car[k][1],deg));
+ }
+
}else{
MyLog.i(TAG,"鏆傛椂鏀寔鏇茬嚎");
map_other = new double[xys.size()/2][2];
--
Gitblit v1.8.0