From 5d6bac072277e62113bedbe6ab608ea88866cd3c Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期二, 13 四月 2021 10:57:38 +0800 Subject: [PATCH] 显示多条科目二曲线 --- app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java | 61 +++++++++++++++++++----------- 1 files changed, 39 insertions(+), 22 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 418a00c..f15283e 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java @@ -488,7 +488,7 @@ } - public void DrawMapAll(double yaw, List<Double> mainAnt, double[][][] map, double [][]map_other, double[][] car, + public void DrawMapAll(double yaw, List<Double> mainAnt, double[][][] map, double [][][]map_other, double[][] car, List<Integer>body, List<Integer> tire) { if (canvas2 == null || bmp == null || bmp2 == null || canvas3 == null) { return; @@ -533,17 +533,23 @@ car[i][1] = -car[i][1]; } - for (int i = 0; i < map_other.length; i++) { - PointF oldPoint = new PointF(map_other[i][0], map_other[i][1]); - PointF newPoint = rotatePoint(oldPoint, mainPoint, yaw ); - map_other[i][0] = newPoint.getX(); - map_other[i][1] = newPoint.getY(); + for (int x = 0; x < map_other.length; x++) { + if (map_other[x] == null || map_other[x].length == 0) { + continue; + } + Log.d(TAG, "棰勭粯鍒舵洸绾� " + x + " 鐐规暟 "+ map_other[x].length); - map_other[i][0] = map_other[i][0] - mainPoint.getX(); - map_other[i][1] = map_other[i][1] - mainPoint.getY(); - map_other[i][1] = -map_other[i][1]; + for (int i = 0; map_other[x] != null && i < map_other[x].length; i++) { + PointF oldPoint = new PointF(map_other[x][i][0], map_other[x][i][1]); + PointF newPoint = rotatePoint(oldPoint, mainPoint, yaw); + map_other[x][i][0] = newPoint.getX(); + map_other[x][i][1] = newPoint.getY(); + + map_other[x][i][0] = map_other[x][i][0] - mainPoint.getX(); + map_other[x][i][1] = map_other[x][i][1] - mainPoint.getY(); + map_other[x][i][1] = -map_other[x][i][1]; + } } - scale_x = Math.round(Math.abs(pixels / Math.sqrt(Math.pow(car[0][0], 2) + Math.pow(car[0][1], 2)) )); scale_y = scale_x; @@ -689,10 +695,10 @@ path.lineTo((float) (base_x + (map[k][i][0] - min_x) * scale_x), (float) (base_y + (map[k][i][1] - min_y) * scale_y)); } - if (map_other.length>9){ - path.moveTo((float) (base_x + (map_other[0][0] - min_x) * scale_x), (float) (base_y + (map_other[0][1] - min_y) * scale_y)); - for (int i = 1; i < map_other.length; i++) { - path.lineTo((float) (base_x + (map_other[i][0] - min_x) * scale_x), (float) (base_y + (map_other[i][1] - min_y) * scale_y)); + if (map_other[k].length>9){ + path.moveTo((float) (base_x + (map_other[k][0][0] - min_x) * scale_x), (float) (base_y + (map_other[k][0][1] - min_y) * scale_y)); + for (int i = 1; i < map_other[k].length; i++) { + path.lineTo((float) (base_x + (map_other[k][i][0] - min_x) * scale_x), (float) (base_y + (map_other[k][i][1] - min_y) * scale_y)); } } } @@ -1266,7 +1272,11 @@ } map_id = -1; if (map_id == -1){ + double allOtherMap[][][]; + allMap =new double[examMaps.getItems().size()][][]; + allOtherMap = new double[examMaps.getItems().size()][][]; + for (int i = 0; i < examMaps.getItems().size(); i++) { ExamMap.ItemsBean examMap = examMaps.getItems().get(i); @@ -1274,6 +1284,9 @@ for(int j=0; j<pointBeanList.size();j++){ List<Double> xys = pointBeanList.get(j).getXy(); + + Log.d(TAG, String.format("123 j = %d size = %d", j, xys.size())); + if(j==0){ map = new double[xys.size()/2][2]; allMap[sanwei] = new double[xys.size()/2][2]; @@ -1288,11 +1301,12 @@ } } allMap[sanwei] = map.clone(); - sanwei++; - }else{ -// MyLog.i(TAG,"all鏀寔鏇茬嚎"); + MyLog.i(TAG,String.format("鏇茬嚎 %d, 鐐规暟 %d", sanwei, xys.size()/2)); map_other = new double[xys.size()/2][2]; + allOtherMap[sanwei] = new double[xys.size()/2][2]; + + map_line_other = 0; for (int k=0; k<xys.size();k++){ if ((k % 2) == 0) { map_other[map_line_other][0] = xys.get(k); @@ -1302,20 +1316,20 @@ map_line_other++; } } + + allOtherMap[sanwei] = map_other.clone(); } - - } - - + sanwei++; } double [][]mapOther; mapOther = map_other.clone(); - DrawMapAll(yaw, mainAnt,allMap, mapOther, car,body,tire); +// DrawMapAll(yaw, mainAnt,allMap, mapOther, car,body,tire); + DrawMapAll(yaw, mainAnt,allMap, allOtherMap, car,body,tire); }else{ for (int i = 0; i < examMaps.getItems().size(); i++) { ExamMap.ItemsBean examMap = examMaps.getItems().get(i); @@ -1324,6 +1338,9 @@ for(int j=0; j<pointBeanList.size();j++){ List<Double> xys = pointBeanList.get(j).getXy(); + + Log.d(TAG, String.format("j = %d size = %d", j, xys.size())); + if(j==0){ map = new double[xys.size()/2][2]; -- Gitblit v1.8.0