Ver código fonte

单位的换算

gaodd 3 anos atrás
pai
commit
c02ae4ba9e

+ 1 - 1
src/main/java/com/szls/nstths/service/TeDataService.java

@@ -26,7 +26,7 @@ public interface TeDataService {
26 26
      * @param diameter
27 27
      * @return 数据库影响条数
28 28
      */
29
-    int scanTask(double diameter, double high);
29
+    void scanTask(double diameter, double high);
30 30
 
31 31
     /**
32 32
      * 第二次待打点

+ 16 - 15
src/main/java/com/szls/nstths/service/impl/Algorithm.java

@@ -83,10 +83,11 @@ public class Algorithm {
83 83
 
84 84
                 }
85 85
 
86
-                sb.append(Math.round(level_angle));
86
+                sb.append(Math.round(vertical_angle) * 51);
87 87
                 sb.append(",");
88
-                sb.append(Math.round(vertical_angle));
88
+                sb.append(Math.round(level_angle) * 51);
89 89
                 sb.append(";");
90
+
90 91
                 // sb.append("\n");
91 92
             }
92 93
         }
@@ -97,12 +98,9 @@ public class Algorithm {
97 98
         AB = diameter / 2;//垂直三角形的底边
98 99
         BC = Math.sqrt(AB * AB + high * high);//垂直三角形的斜边
99 100
         vertical_angle = Math.toDegrees(Math.acos(high / BC));
100
-        sb.append(90);
101
+        sb.append(Math.round(vertical_angle) * 51);
101 102
         sb.append(",");
102
-        sb.append(Math.round(vertical_angle));
103
-        // sb.append("\n");
104
-        //System.out.println(Math.round(level_step)+","+Math.round(vertical_step)+"");
105
-        //System.out.println(sb);
103
+        sb.append(90*51);
106 104
         //System.out.println(sb);
107 105
         return sb.toString();
108 106
 
@@ -129,16 +127,17 @@ public class Algorithm {
129 127
         double verticalAngle = 0;//垂直角度
130 128
         double levelAngle = 0;//水平角度
131 129
         double realHypotenuse = 0;//返回的距离
130
+        BigDecimal baseNumber = new BigDecimal(51);
132 131
 
133
-
134
-        //  "18,7,17.88 - 19,6,28.88 - 17,4,39.88"  水平角度,垂直角度,返回距离 -
132
+        //  "18,7,17.88 - 19,6,28.88 - 17,4,39.88"  垂直角度,水平角度,返回距离 -
135 133
         String[] split = rotationxy.split(";");
136 134
         for (int i = 0; i < split.length; i++) {
135
+        	System.out.println("split[i]是:"+split[i]);
137 136
             String[] split1 = split[i].split(",");
138
-            levelAngle = Double.parseDouble(split1[0]);
139
-            verticalAngle = Double.parseDouble(split1[1]);
140
-            realHypotenuse = Double.parseDouble(split1[2]);
141
-
137
+            verticalAngle = new BigDecimal(split1[0]).divide(baseNumber,0,RoundingMode.HALF_UP).doubleValue();
138
+            levelAngle = new BigDecimal(split1[1]).divide(baseNumber,0,RoundingMode.HALF_UP).doubleValue();
139
+            realHypotenuse = new BigDecimal(split1[2]).divide(new BigDecimal(1000),2,RoundingMode.HALF_UP).doubleValue(); //单位转化为米
140
+            
142 141
             //将垂直的角度转化为弧度
143 142
             double verticalAngleRadians = Math.toRadians(verticalAngle);
144 143
             String verticalAngleS = String.format("%.2f%n", Math.sin(verticalAngleRadians));
@@ -266,10 +265,12 @@ public class Algorithm {
266 265
 
267 266
     public static void main(String[] args) {
268 267
 
269
-        BigDecimal bdv = BigDecimal.valueOf(12.125323);
268
+       /* BigDecimal bdv = BigDecimal.valueOf(12.125323);
270 269
         //BigDecimal bdv = new BigDecimal(vv);
271 270
         //double v = bdv.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
272 271
         double v = bdv.setScale(2, RoundingMode.HALF_UP).doubleValue();
273
-        System.out.println("v = " + v);
272
+        System.out.println("v = " + v);*/
273
+    	String a = Algorithm.getAveragePosition(8,12);
274
+    	System.out.println(a);
274 275
     }
275 276
 }

+ 8 - 7
src/main/java/com/szls/nstths/service/impl/TeDataServiceImpl.java

@@ -26,10 +26,10 @@ public class TeDataServiceImpl implements TeDataService {
26 26
 
27 27
     private static final Logger logger = LoggerFactory.getLogger(TeDataServiceImpl.class);
28 28
 
29
-    static String base_url = "http://local.wxlxit.com:61001/";
29
+    static String base_url = "http://192.168.0.61:4017/";
30 30
     static boolean flag = true;
31
-    static double diameter = 0; //直径
32
-    static double high = 0; //圆筒仓的高(以地面为基准面)
31
+    static double diameter = 8; //直径
32
+    static double high = 12; //圆筒仓的高(以地面为基准面)
33 33
     static double h1 = 6; //h1 圆锥的高
34 34
     static double h2 = 3; //h2 水平地面到圆锥尖的高
35 35
     private STaskMapper sTaskMapper;
@@ -65,7 +65,7 @@ public class TeDataServiceImpl implements TeDataService {
65 65
      * 3. equipmentTestingEnd
66 66
      */
67 67
     @Override
68
-    public int scanTask(double diameter, double high) {
68
+    public void scanTask(double diameter, double high) {
69 69
         logger.info("scanTask {},{}",diameter,high);
70 70
         STask task = new STask();
71 71
         Date date = new Date();
@@ -81,7 +81,7 @@ public class TeDataServiceImpl implements TeDataService {
81 81
         //todo 第一次待打点
82 82
         String rotationxy = Algorithm.getAveragePosition(diameter, high);
83 83
         teData.setRotationxy(rotationxy);
84
-        int inum = teDataMapper.insert(teData);
84
+        //int inum = teDataMapper.insert(teData);
85 85
 
86 86
         logger.info("scanTask sTaskMapper teDataMapper {},{}",task,teData);
87 87
 
@@ -89,7 +89,6 @@ public class TeDataServiceImpl implements TeDataService {
89 89
         //equipmentTestingEnd
90 90
         flag = true;
91 91
 
92
-        return inum;
93 92
     }
94 93
     @Async
95 94
     @Override
@@ -107,7 +106,9 @@ public class TeDataServiceImpl implements TeDataService {
107 106
             //todo 第二次待打点
108 107
 
109 108
             //计算以粮面为基准面的高
109
+        	System.out.println("直径和高是:"+diameter+"****"+high);
110 110
             double zHeight = Algorithm.zHeight(teData.getRotationxy(), diameter, high);
111
+            System.out.println("以粮面为基准面的高是:"+zHeight+"diameter直径是:"+diameter);
111 112
             //打点
112 113
             String rotationxy = Algorithm.getAveragePosition(diameter, zHeight);
113 114
             teData.setRotationxy(rotationxy);
@@ -166,7 +167,7 @@ public class TeDataServiceImpl implements TeDataService {
166 167
             for (int i = 0; i < split.length; i++) {
167 168
                 String[] split1 = split[i].split(",");
168 169
                 //split1[2]  是返回的距离
169
-                zList.add(Double.parseDouble(split1[2]));
170
+                zList.add(Double.parseDouble(split1[2]) / 1000); //距离转化为米
170 171
             }
171 172
         }
172 173
         double v = Algorithm.calculateVolume(zList, diameter, h1, h2); //体积