Ver código fonte

the new service . manager
Change thread to monitor

add other

hasan 4 anos atrás
pai
commit
57e6d0b739
1 arquivos alterados com 38 adições e 20 exclusões
  1. 38 20
      src/main/java/com/sjls/nstthh/util/AlgAlgorithm.java

+ 38 - 20
src/main/java/com/sjls/nstthh/util/AlgAlgorithm.java

@@ -11,32 +11,36 @@ import java.util.Map;
11 11
 
12 12
 public class AlgAlgorithm {
13 13
 
14
+    /**
15
+     * 打点
16
+     *
17
+     * @param
18
+     */
19
+
20
+
21
+    public static void main(String[] args) {
22
+
23
+    }
14 24
 
15 25
     //圆筒仓的直径
16
-    static double diameter = 12;
26
+    //double diameter = 4;
17 27
     //AC 是设备到地面的高
18
-    double  high = 35;
28
+    //double  high = 35;
19 29
 
20 30
 
21
-    static double h1 = 6; //h1 圆锥的高
22
-    static double h2 = 3; // h2 水平地面到圆锥尖的高
23
-    public static List<Double> zNums = new ArrayList<Double>();
24 31
     /**
25 32
      * 算法 产生 待检测点。
26 33
      *
27
-     * @param high 高
34
+     * @param diameter 直径
35
+     * @param high     高
28 36
      * @return
29 37
      */
30
-    public static String getAveragePosition(double diameter,double high) {
38
+    public static String getAveragePosition(double diameter, double high) {
39
+
31 40
 
32
-        if(diameter==0){
33
-            diameter= diameter;
34
-        }
35
-        if(high==0){
36
-            high= high;
37
-        }
38 41
         StringBuffer sb = new StringBuffer();
39 42
 
43
+
40 44
         double x1 = 0;
41 45
         double y1 = 0;
42 46
         //打出来三角形的底边AB 实际是平面上点的斜边
@@ -109,6 +113,7 @@ public class AlgAlgorithm {
109 113
                 sb.append(Math.round(vertical_step));
110 114
                 sb.append(";");
111 115
                 // sb.append("\n");
116
+
112 117
             }
113 118
         }
114 119
 
@@ -125,19 +130,30 @@ public class AlgAlgorithm {
125 130
         // sb.append("\n");
126 131
         //System.out.println(Math.round(level_step)+","+Math.round(vertical_step)+"");
127 132
         //System.out.println(sb);
133
+
128 134
         return sb.toString();
129 135
     }
130 136
 
137
+    public List<Double> getzNums() {
138
+        return zNums;
139
+    }
140
+
141
+    public void setzNums(List<Double> zNums) {
142
+        this.zNums = zNums;
143
+    }
131 144
 
132 145
     /**
133 146
      * 激光测距 给三维
134
-     *
135 147
      * @param map
136 148
      * @return
137 149
      */
150
+    static List<Double> zNums = new ArrayList<Double>();
151
+
152
+
138 153
 
139 154
     public static String sxy(Map<Double, AngleObject> map) {
140 155
 
156
+
141 157
         double d = 30;//圆筒仓的直径
142 158
         double AC = 50;//AC是设备到地面的高
143 159
         double B1C = 0;//设备和粮面点之间的距离
@@ -155,6 +171,8 @@ public class AlgAlgorithm {
155 171
 //        map.put(3.0, angleObject);
156 172
 
157 173
         //list集合用于存放 z值
174
+
175
+
158 176
         for (Double verticalAngle : map.keySet()) {
159 177
             AngleObject angleObject1 = map.get(verticalAngle);
160 178
             //将垂直的角度转化为弧度
@@ -201,7 +219,6 @@ public class AlgAlgorithm {
201 219
                 y = y + d / 2;
202 220
 
203 221
                 sb.append("[" + x + "," + y + "," + z + "],");
204
-
205 222
                 zNums.add(z);
206 223
             }
207 224
         }
@@ -213,10 +230,11 @@ public class AlgAlgorithm {
213 230
 
214 231
     /**
215 232
      * 计算体积
216
-     * @param zList  粮面高集合
217 233
      */
218 234
     public static void calculateVolume(List<Double> zList) {
219
-
235
+        double d = 30; //直径
236
+        double h1 = 6; //h1 圆锥的高
237
+        double h2 = 3; // h2 水平地面到圆锥尖的高
220 238
         //z值的集合
221 239
 
222 240
         //17.1  18.3  19.2  18.3    20.1  16.4  19.8  16.7  19.0  18.9
@@ -239,9 +257,9 @@ public class AlgAlgorithm {
239 257
          * h2 水平地面到圆锥尖的高
240 258
          */
241 259
 
242
-        double v1 = 3.14 * (diameter / 2) * (diameter / 2) * (sum / zList.size());
243
-        double v2 = 3.14 * (diameter / 2) * (diameter / 2) * (zMin - h2 - h1);
244
-        double v3 = (3.14 * (diameter / 2) * (diameter / 2) * h1) / 3;
260
+        double v1 = 3.14 * (d / 2) * (d / 2) * (sum / zList.size());
261
+        double v2 = 3.14 * (d / 2) * (d / 2) * (zMin - h2 - h1);
262
+        double v3 = (3.14 * (d / 2) * (d / 2) * h1) / 3;
245 263
         double vv = v1 + v2 + v3;
246 264
         BigDecimal bdv = new BigDecimal(vv);
247 265
         double v = bdv.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();