From 0e8ecae4a1140c5e23475bbd589f591208e9ed65 Mon Sep 17 00:00:00 2001
From: Runt <qingingrunt2010@qq.com>
Date: Mon, 04 Jan 2021 12:21:55 +0000
Subject: [PATCH] 代码注释

---
 .idea/vcs.xml                                                   |    6 +++
 app/src/main/java/com/demo/navtogether/utils/DijkstraUtils.java |   41 ++++++++++++--------
 app/src/main/java/com/demo/navtogether/utils/PathPlan.java      |    8 ++--
 app/src/main/java/com/demo/navtogether/MainActivity.java        |   21 +++++-----
 4 files changed, 44 insertions(+), 32 deletions(-)

diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/app/src/main/java/com/demo/navtogether/MainActivity.java b/app/src/main/java/com/demo/navtogether/MainActivity.java
index 9b2d2f4..da20037 100644
--- a/app/src/main/java/com/demo/navtogether/MainActivity.java
+++ b/app/src/main/java/com/demo/navtogether/MainActivity.java
@@ -84,12 +84,13 @@
     }
 
     /**
-     * 创建随机位置
+     * 创建一个随机位置  坐标限制在 x 和  y内
      * @param maxX
      * @param maxY
      * @return
      */
     public Point random(int maxX,int maxY){
+        //设计边框距离,已避免部分地点名称出界
         int marginX = (int) (getResources().getDisplayMetrics() .density*15)*2;
         Point point = new Point();
 
@@ -122,7 +123,7 @@
     }
 
     int index = 0 ;
-    ArrayList<ArrayList<PathPlan.Place>> customLists;
+    ArrayList<ArrayList<PathPlan.Place>> customLists = new ArrayList<>();
     /**
      * 自定义算法画线
      * @param view
@@ -156,6 +157,9 @@
     }
 
 
+    /**
+     * 自定义算法画线
+     */
     public void drawLineCustome(){
         if(customLists.size()>1){
             Toast.makeText(MainActivity.this,"当前有"+customLists.size()+"路线规划",Toast.LENGTH_SHORT).show();
@@ -174,20 +178,15 @@
         }
     }
 
+    /**
+     * 刷新 重新加载地点
+     * @param view
+     */
     public void refresh(View view) {
         planPathView.clear();
         customLists.clear();
         int width = planPathView.getWidth();
         int height = planPathView.getHeight();
-        ArrayList<PathPlan.Place> places = new ArrayList<>();
-        places.add(new PathPlan.Place("A",random(width,height),0));
-        places.add(new PathPlan.Place("B",random(width,height),0));
-        places.add(new PathPlan.Place("C",random(width,height),0));
-        places.add(new PathPlan.Place("D",random(width,height),0));
-        places.add(new PathPlan.Place("E",random(width,height),0));
-        places.add(new PathPlan.Place("F",random(width,height),0));
-        places.add(new PathPlan.Place("G",random(width,height),0));
-        places.add(new PathPlan.Place("H",random(width,height),0));
         animD = false;
         animC = false;
         planPathView.setAnimPoints(randomList(width,height),listener);
diff --git a/app/src/main/java/com/demo/navtogether/utils/DijkstraUtils.java b/app/src/main/java/com/demo/navtogether/utils/DijkstraUtils.java
index 824b40d..da44524 100644
--- a/app/src/main/java/com/demo/navtogether/utils/DijkstraUtils.java
+++ b/app/src/main/java/com/demo/navtogether/utils/DijkstraUtils.java
@@ -15,7 +15,7 @@
 
 public class DijkstraUtils {
 
-    HashMap<PathPlan.Place, PathPlan.Distance> distances;
+    HashMap<PathPlan.Place, PathPlan.Distance> distances;//每个点的信息集合
 
     public DijkstraUtils(HashMap<PathPlan.Place, PathPlan.Distance> distances) {
         this.distances = distances;
@@ -27,7 +27,7 @@
     }
 
     /**
-     * 执行
+     * 执行算法
      * @param start  起点
      * @param end
      */
@@ -42,16 +42,16 @@
         ArrayList<PathPlan.Place> places = new ArrayList<>();
         places.add(start);
         while (distances.size()>0){//循环遍历
-            PathPlan.Place nearWay = findNearWay(startDis);
-            startDis = distances.get(nearWay);
-            deletePlace(nearWay);
-            places.add(nearWay);
+            PathPlan.Place nearWay = findNearWay(startDis);//获取与其他点的最短个那一个
+            startDis = distances.get(nearWay);//距离信息
+            deletePlace(nearWay);//从集合中删除,避免下次循环再次出现该地点
+            places.add(nearWay);//添加到线路集合记录中
         }
-        if(end != null){
+        if(end != null){//如果有终点则最后追加
             end.distance = endDis.distanceMap.get(places.get(places.size()-1));
             places.add(end);
         }
-        return places;
+        return places;//返回规划的路线集合
 
     }
 
@@ -113,10 +113,12 @@
     ArrayList<ArrayList<PathPlan.Place>> arrayLists = new ArrayList<>();//路线记录
     /**
      * 自定义规划路线算法
+     * @param start 起始地点
+     * @param end   末尾地点
      */
     public  ArrayList<ArrayList<PathPlan.Place>> initCustomPathPlan(  PathPlan.Place start,PathPlan.Place end){
         arrayLists.clear();//清空记录
-        ArrayList<PathPlan.Place > places = new ArrayList<>(distances.keySet());
+        ArrayList<PathPlan.Place > places = new ArrayList<>(distances.keySet());//所有地点集合
         for(int i=1;i<=places.size();i++){
             sortPlace(places,new ArrayList<PathPlan.Place>(),i,start,end);
         }
@@ -128,17 +130,17 @@
 
     /**
      * 组合
-     * @param datas
-     * @param target
-     * @param num
-     * @param start 起始
-     * @param end   末尾
+     * @param datas  地点数据
+     * @param target 整理的新路线
+     * @param num   循环的下标位置,即路线规划的地点数量
+     * @param start 起始地点
+     * @param end   末尾地点
      */
     private void sortPlace(ArrayList<PathPlan.Place>  datas, ArrayList<PathPlan.Place>  target,int num,PathPlan.Place start,PathPlan.Place end) {
         if (target.size() == num) {
             ArrayList newDatas = new ArrayList( );
-            ArrayList<PathPlan.Place > places = new ArrayList<>(distances.keySet());
-            //数量不够,起始和末尾不对应
+            ArrayList<PathPlan.Place > places = new ArrayList<>(distances.keySet());//所有地点集合
+            //数量不够,起始和末尾不对应,则不再执行
             if(places.size()> num || start!=null && !target.get(0).equals(start) || end!=null && !target.get(target.size()-1).equals(end)){
                 return;
             }
@@ -154,7 +156,7 @@
             //记录最短距离
             if(dist == -1 || dist >= tempDist){
                 if(dist > tempDist){
-                    arrayLists.clear();
+                    arrayLists.clear();//清除之前的数据
                 }
                 dist = tempDist;
                 arrayLists.add(newDatas);
@@ -171,6 +173,11 @@
             sortPlace(newDatas, newTarget,num,start,end);
         }
     }
+
+    /**
+     * 创建一个随机位置  坐标在0-100内
+     * @return
+     */
     public static Point random(){
         Point point = new Point();
 
diff --git a/app/src/main/java/com/demo/navtogether/utils/PathPlan.java b/app/src/main/java/com/demo/navtogether/utils/PathPlan.java
index a3090d1..79139a6 100644
--- a/app/src/main/java/com/demo/navtogether/utils/PathPlan.java
+++ b/app/src/main/java/com/demo/navtogether/utils/PathPlan.java
@@ -7,7 +7,7 @@
 import java.util.TreeMap;
 
 /**
- * My father is Object, ites purpose of 线路规划
+ * My father is Object, ites purpose of 距离
  *
  * @purpose Created by Runt (qingingrunt2010@qq.com) on 2020-12-23.
  */
@@ -40,7 +40,7 @@
         public Point point;
         //权重,优先权
         public int priority;
-        //上一站距離
+        //上一站距離,计算时补充,初始化为0
         public double distance;
 
         public Place(Place place){
@@ -78,8 +78,8 @@
      * 距离
      */
     public static class Distance{
-        public Place place;
-        public HashMap<Place,Double> distanceMap = new HashMap();
+        public Place place;//地点
+        public HashMap<Place,Double> distanceMap = new HashMap();//保存与其他所有地点的距离集合
         public Distance(Place place ) {
             this.place = place;
         }

--
Gitblit v1.9.1