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/util/Utils.java | 47 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 44 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/safeluck/drive/evaluation/util/Utils.java b/app/src/main/java/safeluck/drive/evaluation/util/Utils.java index 4098c9f..6336c9f 100644 --- a/app/src/main/java/safeluck/drive/evaluation/util/Utils.java +++ b/app/src/main/java/safeluck/drive/evaluation/util/Utils.java @@ -416,13 +416,13 @@ private static boolean isEqual(double a,double b){ return (Math.abs(a-b)<1e-3); } - private static Point rotatePoint(Point oldPoint,Point centre,double degree){ + public static Point rotatePoint(Point oldPoint,Point centre,double degree){ Point newPoint = new Point(0.0,0.0); newPoint.setX(getdouble((oldPoint.getX()-centre.getX())*cos(toRadians(degree)) - - (oldPoint.getY()-centre.getY())*sin(toRadians(degree)) + centre.getX(),6)) ; + (oldPoint.getY()-centre.getY())*sin(toRadians(degree)) + centre.getX(),4)) ; newPoint.setY(getdouble( (oldPoint.getX()-centre.getX())*sin(toRadians(degree)) - + (oldPoint.getY()-centre.getY())*cos(toRadians(degree)) + centre.getY(),6)); + + (oldPoint.getY()-centre.getY())*cos(toRadians(degree)) + centre.getY(),4)); return newPoint; } @@ -436,6 +436,47 @@ return b.setScale(reserve, BigDecimal.ROUND_HALF_UP).doubleValue(); } + + public static double YawOf(Point p1, Point p2) + { + double deg = 0.0; + + if (Math.abs(p1.getY() - p2.getY()) <= 1e-3) { + if (p1.getX() > p2.getX()) { + deg = 90; + } else { + deg = 270; + } + } else if (Math.abs(p1.getX() - p2.getX()) <= 1e-3) { + if (p1.getY() > p2.getY()) { + deg = 0; + } else { + deg = 180; + } + } else { + deg = Math.atan(Math.abs(p1.getX() - p2.getX()) / + Math.abs(p1.getY() - p2.getY())); + + deg = Math.toDegrees(deg); + + if (p1.getX() > p2.getX() && + p1.getY() > p2.getY()) { + + } else if (p1.getX() < p2.getX() && + p1.getY() > p2.getY()) { + deg = 360 - deg; + } else if (p1.getX() < p2.getX() && + p1.getY() < p2.getY()) { + deg = 180 + deg; + } else if (p1.getX() > p2.getX() && + p1.getY() < p2.getY()) { + deg = 180 - deg; + } + } + + return deg; + } + public static String formatTimeYYMMDDHHmmSS(long begin_time) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); -- Gitblit v1.8.0