package linea; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.util.ArrayList; public class Ligne extends ObjetGraphique { protected int nbSegments = 400; protected double xCercle = 400; protected Segment SegCourant; protected ArrayList listeSegments = new ArrayList(); protected double limiteHaut = 50; protected double limiteBas = 550; public Ligne() { double x = 0; double y = 200; double dx, dy; Segment s; for (int i = 0; i < nbSegments; i++) { dx = Math.random() * 20 + 80; dy = Math.random() * 40 - 20; if (y + dy > limiteBas) { dy = limiteBas - y; } if (y + dy < limiteHaut) { dy = limiteHaut - y; } s = new Segment(x, y, dx, dy); s.setCouleur(new Color(0.2f, 0.2f, 0.2f)); listeSegments.add(s); x += dx; y += dy; } } @Override public void Afficher(Graphics g) { Graphics2D g2D = (Graphics2D) g; g2D.setStroke(new BasicStroke(3.0f)); for (Segment s : listeSegments) { s.Afficher(g); if (SegCourant == null) { if (xCercle < s.x + s.xLong && xCercle > s.x) { SegCourant = s; } } else { if ((SegCourant.x + SegCourant.xLong) < xCercle) { if (s.x <= xCercle && (s.xLong) >= xCercle) { SegCourant = s; } } } } } @Override public void Animer() { for (Segment s : listeSegments) { s.Animer(); s.x -= 10; } } }