Commit 8373d2d5 authored by Falucho's avatar Falucho

se trabaja con las graficas de lineas distintas

parent d401a53a
......@@ -23,8 +23,8 @@ import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;
import java.util.OptionalInt;
import java.util.Set;
import java.util.TreeSet;
import java.util.logging.Level;
......@@ -443,8 +443,10 @@ public final class Principal extends javax.swing.JFrame {
Individuo individuo = AEControlador.getInstance().run();
System.out.println("Costo encontrado " + individuo.getCosto());
List<Arista> aristas = individuo.getAristas();
dibujarAristas();
dibujarAristas(aristas, Color.MAGENTA, 2);
dibujarLinas(individuo);
//dibujarAristas(aristas, Color.MAGENTA, 2);
String tiempo = AEControlador.getInstance().getTime();
int gen = AEControlador.getInstance().getGeneracion();
......@@ -472,7 +474,8 @@ public final class Principal extends javax.swing.JFrame {
List<Arista> aristas = individuoAE.getAristas();
dibujarAristas();
dibujarAristas(aristas, Color.MAGENTA, 2);
dibujarLinas(individuoAE);
//dibujarAristas(aristas, Color.MAGENTA, 2);
lblEstado.setText("Generacion: " + gen + " | Costo Individuo: " + individuoAE.getCosto() + " | Tiempo: " + tiempo);
Thread.sleep(900);
......@@ -624,8 +627,7 @@ public final class Principal extends javax.swing.JFrame {
lblEstado.setText("");
Individuo best = AEControlador.getInstance().getBest();
if (best != null) {
List<Arista> ariBest = best.getAristas();
dibujarAristas(ariBest, Color.MAGENTA, 2);
dibujarLinas(best);
String tiempo = AEControlador.getInstance().getTime();
int gen = AEControlador.getInstance().getGeneracion();
......@@ -633,6 +635,22 @@ public final class Principal extends javax.swing.JFrame {
}
}
private void dibujarLinas(Individuo i) {
List<Linea> lineas =
Arrays.stream(i.getConcentradores())
.flatMap(e -> e.getLineas().stream())
.collect(Collectors.toList());
dibujarLinas(lineas);
}
private void dibujarLinas(List<Linea> lineas) {
Color[] colors = {Color.MAGENTA, Color.CYAN, Color.ORANGE, Color.GREEN, Color.PINK, Color.BLUE, Color.RED, Color.YELLOW, Color.WHITE};
for (int i = 0; i < lineas.size(); i++) {
dibujarAristas(lineas.get(i).getTramos(), colors[i], 2);
}
}
private void dibujarAristas(List<Arista> aristas, Color color, int px) {
Boolean debug = PropiedadesControlador.getBoolProperty(PropiedadesEnum.DEBUG);
......
......@@ -6,6 +6,7 @@ import java.util.stream.Collectors;
public final class Linea {
private List<Arista> tramos;
private List<Nodo> nodos;
private String id = null;
private Integer delay = null;
......@@ -13,20 +14,22 @@ public final class Linea {
this.id = copy.id;
this.delay = copy.delay;
this.tramos = new ArrayList<>(copy.tramos);
this.nodos = new ArrayList<>(copy.nodos);
}
public Linea(List<Arista> tramos) {
this.tramos = tramos;
ordenarAristas();
}
public List<Arista> getTramos() {
return tramos;
}
public List<Integer> getNodos() {
private void ordenarAristas() {
final Map<Integer, Nodo> cache = new HashMap<>();
final List<Integer> integers = new ArrayList<>();
final List<Arista> nuevoTramo = new ArrayList<>();
final List<Nodo> nodosOrdenados = new ArrayList<>();
for (Arista arista : tramos) {
cache.put(arista.getIdNodoA(), arista.getNodoA());
......@@ -47,8 +50,7 @@ public final class Linea {
}
for (int i = 0; i < cache.size(); i++) {
nuevoTramo.add(pivotA);//TODO, me queda la ultima duplicada.
integers.add(pivotN.getNombre());
nodosOrdenados.add(pivotN);
if (pivotA.getIdNodoA() == pivotN.getNombre()) {
pivotN = pivotA.getNodoB();
} else {
......@@ -60,12 +62,18 @@ public final class Linea {
continue;
}
if (a.getIdNodoA() == pivotN.getNombre() || a.getIdNodoB() == pivotN.getNombre()) {
nuevoTramo.add(pivotA);
pivotA = a;
break;
}
}
}
return integers;
nodos=nodosOrdenados;
tramos=nuevoTramo;
}
public List<Integer> getNodos() {
return nodos.stream().map(Nodo::getNombre).collect(Collectors.toList());
}
public String getId() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment