-
Notifications
You must be signed in to change notification settings - Fork 0
/
HistCircle.java
65 lines (60 loc) · 1.36 KB
/
HistCircle.java
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
// part of Taclet
// author: Ulrike Hager
import java.awt.*;
import java.awt.geom.Arc2D;
public class HistCircle {//class HistCircle
private double xPos;
private double yPos;
private double[] height;
private double[] stepSize;
private Color[] tacColour;
HistCircle(double xPos, double yPos, double aStepSize, Color[] tacColour){
this.xPos = xPos;
this.yPos = yPos;
height = new double[8];
for (int i= 0; i<8; i++){
height[i] = 0;
}
stepSize = new double[8];
for (int i= 0; i<8; i++){
stepSize[i] = aStepSize/2;
}
this.tacColour = tacColour;
}
public void setHeight(int i, double aHeight){
height[i] = aHeight;
}
public void reset(int j){
height = new double[8];
for (int i= 0; i<8; i++){
height[i] = 0;
}
height[j]+=stepSize[j];
}
public void incHeight(int i){
height[i]+=stepSize[i];
}
public double getHeight(int i){
return height[i];
}
public double getX(){
return xPos;
}
public double getY(){
return yPos;
}
public void setStepSize(int i, double step){
stepSize[i] = step/2;
}
public void paint(Graphics g){
Graphics2D g2D = (Graphics2D) g;
for (int i = 0; i < 8; i++){
Arc2D arc = new Arc2D.Double(Arc2D.PIE);
double angle = (double)((i *45) +90);
if (angle > 359) angle-=360;
g2D.setColor(tacColour[i]);
arc.setArcByCenter(xPos,yPos,height[i],angle,45,Arc2D.PIE);
g2D.fill(arc);
}
}
}