-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsrc_ScaledDataSet.java
More file actions
120 lines (102 loc) · 3.17 KB
/
src_ScaledDataSet.java
File metadata and controls
120 lines (102 loc) · 3.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import java.util.ArrayList;
public class ScaledDataSet {
private ArrayList<Float> xvals, yvals;
private boolean yscaling = true;
private boolean xscaling = true;
private float inputymin, inputymax, scaledymin, scaledymax;
private float inputxmin, inputxmax, scaledxmin, scaledxmax;
private float xmin, xmax, ymin, ymax;
private float yshiftval, yscaleval, xshiftval, xscaleval;
public ScaledDataSet() {
xvals = new ArrayList<Float>();
yvals = new ArrayList<Float>();
xmax = Float.MIN_NORMAL;
ymax = Float.MIN_NORMAL;
xmin = Float.MAX_VALUE;
ymin = Float.MAX_VALUE;
}
public void setyScaling(float inputymin, float scaledymin,
float inputymax, float scaledymax) {
this.inputymin = inputymin;
this.inputymax = inputymax;
this.scaledymin = scaledymin;
this.scaledymax = scaledymax;
this.yscaling = true;
this.yscaleval = (scaledymax - scaledymin)/(inputymax - inputymin);
this.yshiftval = scaledymin - yscaleval*inputymin;
}
public void setxScaling(float inputxmin, float scaledxmin,
float inputxmax, float scaledxmax) {
this.inputxmin = inputxmin;
this.inputxmax = inputxmax;
this.scaledxmin = scaledxmin;
this.scaledxmax = scaledxmax;
this.xscaling = true;
this.xscaleval = (float)(scaledxmax - scaledxmin)/(float)(inputxmax - inputxmin);
this.xshiftval = scaledxmin - xscaleval*inputxmin;
}
public void addPoint(float x, float y) {
if (yscaling) {
// scale the input and then add!
y = y*yscaleval + yshiftval;
yvals.add(y);
} else {
System.out.println("ScaledDataSet couldn't add point " + x + ", "
+ y + "; No y scale values set!");
}
if (xscaling) {
x = x*xscaleval + this.xshiftval;
xvals.add(x);
} else {
System.out.println("ScaledDataSet couldn't add point " + x + ", "
+ y + "; No x scale values set!");
}
if (x < xmin) {
xmin = x;
} else if (x > xmax) {
xmax = x;
}
if (y < ymin) {
ymin = y;
} else if (y > ymax) {
ymax = y;
}
}
public float getxmin() {
return xmin;
}
public float getymin() {
return ymin;
}
public float getxmax() {
return xmax;
}
public float getymax() {
return ymax;
}
public int getSize() {
return xvals.size();
}
public void clearData() {
xvals.clear();
yvals.clear();
xmax = Float.MIN_NORMAL;
ymax = Float.MIN_NORMAL;
xmin = Float.MAX_VALUE;
ymin = Float.MAX_VALUE;
}
public void clear() {
xvals.clear();
yvals.clear();
xmax = Float.MIN_NORMAL;
ymax = Float.MIN_NORMAL;
xmin = Float.MAX_VALUE;
ymin = Float.MAX_VALUE;
}
public float getx(int num) {
return xvals.get(num);
}
public float gety(int num) {
return yvals.get(num);
}
}