Files
projet-dev/src/Ligne.java

75 lines
1.4 KiB
Java
Raw Normal View History

2026-02-02 11:40:03 +01:00
package linea;
2026-02-02 11:19:18 +01:00
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 {
2026-02-02 11:19:18 +01:00
protected int nbSegments = 400;
protected double xCercle = 400;
2026-02-02 11:19:18 +01:00
protected Segment SegCourant;
protected ArrayList<Segment> listeSegments = new ArrayList<Segment>();
protected double limiteHaut = 50;
protected double limiteBas = 550;
public Ligne() {
2026-02-10 16:24:44 +01:00
double x = 0;
2026-02-02 11:19:18 +01:00
double y = 200;
double dx, dy;
2026-02-02 11:19:18 +01:00
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;
2026-02-02 11:19:18 +01:00
}
}
@Override
public void Afficher(Graphics g) {
2026-02-02 11:19:18 +01:00
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;
2026-02-10 16:24:44 +01:00
}
} else {
if ((SegCourant.x + SegCourant.xLong) < xCercle) {
if (s.x <= xCercle && (s.xLong) >= xCercle) {
SegCourant = s;
2026-02-10 16:24:44 +01:00
}
}
}
}
2026-02-02 11:19:18 +01:00
}
@Override
public void Animer() {
for (Segment s : listeSegments) {
s.Animer();
2026-02-10 16:24:44 +01:00
s.x -= 10;
}
2026-02-02 11:19:18 +01:00
}
}