88 |
g.setColor(bg); |
g.setColor(bg); |
89 |
g.fillOval(mx, my, mw, mh); |
g.fillOval(mx, my, mw, mh); |
90 |
} else { |
} else { |
91 |
// Draws multiple background colours as sectors |
g.setColor(solids[0]); |
92 |
int arc = 360 / nsolids; |
g.fillArc(mx, my, mw, mh, -90, 180); |
93 |
for(int i=0; i<nsolids; i++) { |
g.setColor(solids[nsolids-1]); |
94 |
|
g.fillArc(mx, my, mw, mh, 90, 180); |
95 |
|
int lastsolid = nsolids-1; |
96 |
|
int solidwidth = mw / nsolids; |
97 |
|
float a = mw/2; |
98 |
|
float b = mh/2; |
99 |
|
for(int i=1; i<lastsolid; i++) { |
100 |
|
float w = a-i*solidwidth; |
101 |
|
float h = b * (float)Math.sqrt(1-(Math.pow(w,2)/Math.pow(a, 2))); |
102 |
|
int arc = 90 - (int)((180/Math.PI) * Math.atan2(h*(a/b),w)); |
103 |
|
|
104 |
g.setColor(solids[i]); |
g.setColor(solids[i]); |
105 |
g.fillArc(mx, my, mw, mh, -90 + arc * (i-1), arc); |
g.fillRect((int)(mx+(i*solidwidth)), (int)(my+(b-h)), |
106 |
|
(int)w, (int)(h*2)); |
107 |
|
g.fillArc(mx, my, mw, mh, 90, arc); |
108 |
|
g.fillArc(mx, my, mw, mh, -90-arc, arc); |
109 |
|
|
110 |
|
g.setColor(solids[lastsolid-1]); |
111 |
|
g.fillRect((int)(mx+a), (int)(my+(b-h)), (int)w, (int)(h*2)); |
112 |
|
g.fillArc(mx, my, mw, mh, 90-arc, arc); |
113 |
|
g.fillArc(mx, my, mw, mh, -90, arc); |
114 |
|
|
115 |
|
lastsolid--; |
116 |
} |
} |
117 |
} |
} |
118 |
|
|
119 |
if(drawBorder) { |
if(drawBorder) { |
120 |
g.setColor(info1.getMixedFgColor()); |
g.setColor(info1.getMixedFgColor()); |
121 |
g.drawOval(mx, my, mw, mh); |
g.drawOval(mx, my, mw, mh); |