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