import java.awt.*; public class Rotate { public class Wing { int s, r, p; double cil, alpha, valpha; } public static final int MAXC = 220; Graphics g; int x, y, r, rm; int color; double a; Wing []wings; public double randf(double min, double max) { return min + Math.random()*(max - min); } public int randi(int min, int max) { return min + (int)(Math.random()*(max - min)); } public Rotate(int p, int xx, int yy, int rr, int rrm, int c, double aa, Graphics gg) { g = gg; x = xx; y = yy; r = rr; rm = rrm; color = c; a = aa; int k = 0; wings = new Wing[p]; for (int i = 0; i < wings.length; i ++) { wings[i] = new Wing(); wings[i].s = randi(20, 100); wings[i].r = randi(rm - (i+1)*(rm-r)/wings.length, rm - i*(rm-r)/wings.length); wings[i].alpha = randf(0, 360); wings[i].valpha = randf(-3, 3); wings[i].cil = randf(-5, 5); k = k + (MAXC-1)/wings.length; wings[i].p = k+36; } } public void kresli() { for (int i = 0; i < wings.length; i ++) { if (color == 0) g.setColor(new Color(wings[i].p, wings[i].p, wings[i].p)); if (color == 1) g.setColor(new Color(0, 0, wings[i].p)); if (color == 2) g.setColor(new Color(0, wings[i].p, 0)); if (color == 3) g.setColor(new Color(wings[i].p, 0, 0)); if (color == 4) g.setColor(new Color(wings[i].p, wings[i].p, 0)); if (color == 5) g.setColor(new Color(wings[i].p, 0, wings[i].p)); if (color == 6) g.setColor(new Color(0, wings[i].p, wings[i].p)); g.fillArc((int)(x - wings[i].r), (int)(y - wings[i].r), 2*wings[i].r, 2*wings[i].r, (int)wings[i].alpha, wings[i].s); wings[i].alpha += wings[i].valpha; if (wings[i].cil > wings[i].valpha) wings[i].valpha += a; if (wings[i].cil < wings[i].valpha) wings[i].valpha -= a; if ( Math.abs(wings[i].valpha - wings[i].cil) < 0.1) wings[i].cil = randf(-3, 3); } // g.setColor(new Color(MAXC-1, MAXC-1, MAXC-1)); g.fillOval((int)(x - r), (int)(y - r), 2*r, 2*r); } }