90 lines
2.6 KiB
Java
90 lines
2.6 KiB
Java
package com.flaremicro.flaretv.visualforecast.icons;
|
|
|
|
import java.awt.BasicStroke;
|
|
import java.awt.Color;
|
|
import java.awt.Graphics2D;
|
|
import java.awt.geom.Ellipse2D;
|
|
|
|
public class CloudIcon implements Icon {
|
|
Ellipse2D.Float[] cloudCircles = new Ellipse2D.Float[]{
|
|
new Ellipse2D.Float(0, 0.5F, 0.28F, 0.325F),
|
|
new Ellipse2D.Float(0.142F, 0.619F, 0.287F, 0.231F),
|
|
new Ellipse2D.Float(0.666F, 0.597F, 0.208F, 0.234F),
|
|
new Ellipse2D.Float(0.435F, 0.585F, 0.226F, 0.253F),
|
|
new Ellipse2D.Float(0.749F, 0.412F, 0.251F, 0.417F),
|
|
new Ellipse2D.Float(0.478F, 0.235F, 0.348F, 0.602F),
|
|
new Ellipse2D.Float(0.233F, 0.150F, 0.369F, 0.677F),
|
|
new Ellipse2D.Float(0.113F, 0.326F, 0.266F, 0.356F),
|
|
};
|
|
|
|
|
|
Ellipse2D.Float[] extraStroke = new Ellipse2D.Float[]{
|
|
new Ellipse2D.Float(0.142F, 0.619F, 0.287F, 0.231F),
|
|
new Ellipse2D.Float(0.666F, 0.597F, 0.208F, 0.234F)
|
|
};
|
|
|
|
|
|
|
|
Ellipse2D.Float[] overStroke = new Ellipse2D.Float[]{
|
|
new Ellipse2D.Float(0.233F, 0.150F, 0.369F, 0.677F),
|
|
new Ellipse2D.Float(0.113F, 0.326F, 0.266F, 0.356F),
|
|
new Ellipse2D.Float(0.749F, 0.412F, 0.251F, 0.417F),
|
|
new Ellipse2D.Float(0.652F, 0.555F, 0.150F, 0.136F),
|
|
};
|
|
|
|
Ellipse2D.Float[] lightCircles = new Ellipse2D.Float[]{
|
|
new Ellipse2D.Float(0.309F, 0.173F, 0.209F, 0.235F),
|
|
new Ellipse2D.Float(0.554F, 0.276F, 0.204F, 0.314F),
|
|
new Ellipse2D.Float(0.770F, 0.440F, 0.204F, 0.235F),
|
|
new Ellipse2D.Float(0.141F, 0.348F, 0.260F, 0.235F),
|
|
new Ellipse2D.Float(0.259F, 0.460F, 0.314F, 0.235F),
|
|
};
|
|
|
|
Ellipse2D.Float[] overLight = new Ellipse2D.Float[]{
|
|
new Ellipse2D.Float(0.328F, 0.188F, 0.209F, 0.235F),
|
|
new Ellipse2D.Float(0.573F, 0.296F, 0.204F, 0.314F),
|
|
new Ellipse2D.Float(0.789F, 0.456F, 0.204F, 0.235F),
|
|
new Ellipse2D.Float(0.155F, 0.369F, 0.260F, 0.235F),
|
|
new Ellipse2D.Float(0.288F, 0.476F, 0.314F, 0.235F),
|
|
};
|
|
|
|
|
|
@Override
|
|
public void drawIcon(Graphics2D g2d, float scale, int animationStep) {
|
|
g2d.setColor(Color.BLACK);
|
|
g2d.setStroke(new BasicStroke(4/scale));
|
|
for(int i = 0; i < cloudCircles.length; i++)
|
|
{
|
|
g2d.draw(cloudCircles[i]);
|
|
}
|
|
g2d.setColor(Color.LIGHT_GRAY);
|
|
for(int i = 0; i < cloudCircles.length; i++)
|
|
{
|
|
g2d.fill(cloudCircles[i]);
|
|
}
|
|
|
|
g2d.setColor(Color.BLACK);
|
|
g2d.setStroke(new BasicStroke(2/scale));
|
|
for(int i = 0; i < extraStroke.length; i++)
|
|
{
|
|
g2d.draw(extraStroke[i]);
|
|
}
|
|
|
|
g2d.setColor(Color.LIGHT_GRAY);
|
|
for(int i = 0; i < overStroke.length; i++)
|
|
{
|
|
g2d.fill(overStroke[i]);
|
|
}
|
|
|
|
for(int i = 0; i < lightCircles.length; i++)
|
|
{
|
|
g2d.setColor(Color.LIGHT_GRAY.brighter());
|
|
g2d.fill(lightCircles[i]);
|
|
g2d.setColor(Color.LIGHT_GRAY);
|
|
g2d.fill(overLight[i]);
|
|
}
|
|
|
|
}
|
|
|
|
}
|