1 package cz.cuni.amis.pogamut.usar2004.samples.AirScanner;
2
3 import java.awt.Color;
4 import java.awt.Graphics2D;
5 import java.awt.Image;
6 import java.awt.image.BufferedImage;
7 import java.text.DateFormat;
8 import java.text.DecimalFormat;
9 import java.text.SimpleDateFormat;
10 import java.util.Date;
11 import java.util.TimeZone;
12
13
14
15
16
17
18 public class ToolBox
19 {
20
21
22
23
24
25
26 public static int getMax(int[] array)
27 {
28 int max = 0;
29 for(int i : array)
30 {
31 if(i > max)
32 {
33 max = i;
34 }
35 }
36 return max;
37 }
38
39
40
41
42
43
44
45
46 public static String getTime(long elapsed)
47 {
48 DateFormat df = new SimpleDateFormat("HH:mm:ss.SSS");
49 df.setTimeZone(TimeZone.getTimeZone("GMT+0"));
50 return (df.format(new Date(elapsed)));
51 }
52
53
54
55
56
57
58
59
60
61
62 public static int getMin(int i, int j, int k, int l)
63 {
64 return Math.min(Math.min(i, j), Math.min(k, l));
65 }
66
67
68
69
70
71
72
73
74 public static double getAngle(double sx, double cx)
75 {
76 if(sx > 0 && cx > 0)
77 {
78 return Math.acos(Math.abs(cx)) * 180 / Math.PI;
79 }
80 else if(sx > 0 && cx <= 0)
81 {
82 return 180 - Math.acos(Math.abs(cx)) * 180 / Math.PI;
83 }
84 else if(sx <= 0 && cx <= 0)
85 {
86 return 180 + Math.acos(Math.abs(cx)) * 180 / Math.PI;
87 }
88 else
89 {
90 return 360 - Math.acos(Math.abs(cx)) * 180 / Math.PI;
91 }
92 }
93
94
95
96
97
98
99
100
101 public static String getTwoDecimalPlaces(double value)
102 {
103 DecimalFormat df = new DecimalFormat("#.##");
104 return df.format(value);
105 }
106
107
108
109
110
111
112
113
114
115
116
117
118 public static BufferedImage resizeImage(Image original, int x, int y, int offsetX, int offsetY)
119 {
120 BufferedImage resized = new BufferedImage(original.getWidth(null) + x, original.getHeight(null) + y, BufferedImage.TYPE_INT_ARGB);
121 Graphics2D g = resized.createGraphics();
122 g.setColor(Color.BLACK);
123 g.fillRect(0, 0, resized.getWidth(), resized.getHeight());
124 g.drawImage(original, offsetX, offsetY, null);
125 return resized;
126 }
127
128
129
130
131
132
133
134
135
136
137
138
139 public static double[][] resizeArray(double[][] original, int x, int y, int offsetX, int offsetY)
140 {
141 double[][] resized = initArray(original.length + x, original[0].length + y);
142
143 for(int i = 0; i < original.length; i++)
144 {
145 System.arraycopy(original[i], 0, resized[i + offsetX], offsetY, original[0].length);
146 }
147 return resized;
148 }
149
150
151
152
153
154 public static double[][] initArray(int width, int height)
155 {
156 double data[][] = new double[width][height];
157 for(int i = 0; i < data.length; i++)
158 {
159 for(int j = 0; j < data[i].length; j++)
160 {
161 data[i][j] = Double.MIN_VALUE;
162 }
163 }
164 return data;
165 }
166 }