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