From a073dc3c983b4c56c5da92642c9ad11995bdb844 Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期一, 11 五月 2020 18:05:31 +0800
Subject: [PATCH] 新的科目三

---
 lib/src/main/cpp/test_common/Geometry.cpp |   33 ++++++++++++++++++++++++++++++++-
 1 files changed, 32 insertions(+), 1 deletions(-)

diff --git a/lib/src/main/cpp/test_common/Geometry.cpp b/lib/src/main/cpp/test_common/Geometry.cpp
index 8c90d31..7f8c02c 100644
--- a/lib/src/main/cpp/test_common/Geometry.cpp
+++ b/lib/src/main/cpp/test_common/Geometry.cpp
@@ -11,6 +11,9 @@
 #include <malloc.h>
 #include <initializer_list>
 #include <cctype>
+#include <iosfwd>
+#include <iomanip>
+#include <sstream>
 
 #include "../jni_log.h"
 
@@ -37,6 +40,13 @@
 inline double toDegree(double radians)
 {
     return (radians * 180.0) / M_PI;
+}
+
+double round(double number, unsigned int bits) {
+    stringstream ss;
+    ss << setiosflags(ios::fixed) << setprecision(bits) << number;
+    ss >> number;
+    return number;
 }
 
 void MakeLine(Line *line, const PointF *p1, const PointF *p2)
@@ -442,6 +452,7 @@
     }
 }
 
+// 0 - straight, 1 - left, -1 - right, 2 - front, -2 - back
 int IntersectionOfLine(PointF p, Line line)
 {
     PointF p1, p2;
@@ -451,7 +462,7 @@
     p2.X = line.X2;
     p2.Y = line.Y2;
 
-    IntersectionOfLine(p1, p2, p);
+    return IntersectionOfLine(p1, p2, p);
 }
 
 /***************************************************************
@@ -514,6 +525,26 @@
     return false;
 }
 
+bool VerticalPointOnLine(PointF point, Line line, PointF &vp)
+{
+    PointF p1, p2;
+
+    p1.X = line.X1;
+    p1.Y = line.Y1;
+
+    p2.X = line.X2;
+    p2.Y = line.Y2;
+
+    PointF pv = GetVerticalPoint(p1, p2, point);
+
+    if (isEqual2(pv.X, MIN(p1.X, p2.X)) || isEqual2(pv.X, MAX(p1.X, p2.X)) ||
+        (pv.X > MIN(p1.X, p2.X) && pv.X < MAX(p1.X, p2.X))) {
+        vp = pv;
+        return true;
+    }
+    return false;
+}
+
 /****************************************************************
  *                      p3
  *                      |  'L'

--
Gitblit v1.8.0