Files
VisualForecast-1000/src/com/flaremicro/flaretv/visualforecast/icons/CloudIcon.java
Flare Microsystems f7f24dfbe5 Initial commit
2024-03-03 00:02:00 -08:00

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]);
}
}
}