diff --git a/src/main/java/fr/univlille/sae/classification/model/LoadableData.java b/src/main/java/fr/univlille/sae/classification/model/LoadableData.java index 6c322d67bb5572e74277def6dc77bee10d57ef56..670de56e73a5d89c5793525fd64709cc165ad66d 100644 --- a/src/main/java/fr/univlille/sae/classification/model/LoadableData.java +++ b/src/main/java/fr/univlille/sae/classification/model/LoadableData.java @@ -4,6 +4,9 @@ import javafx.scene.paint.Color; import java.util.Map; import java.util.HashMap; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; import java.util.Set; /** @@ -19,6 +22,7 @@ public abstract class LoadableData { * Constructeur par défaut. */ protected LoadableData() { + } /** @@ -45,8 +49,30 @@ public abstract class LoadableData { */ public static void setClassificationTypes(Set<String> classificationTypes) { LoadableData.classificationTypes = classificationTypes; + LoadableData.classification.clear(); + + int nb = 0; + for(String s : classificationTypes) { + // Génération de couleurs avec une plage évitant le blanc + + LoadableData.classification.put(s, getColor(nb++)); + } + + LoadableData.classification.put("undefined", getColor(nb)); + } + + private static Color getColor(int i) { + double ratio = (double) i / classificationTypes.size(); + + // Réduire les composantes pour éviter les tons clairs + double red = 0.2 + 0.6 * ratio; // Entre 0.2 et 0.8 + double green = 0.8 - 0.6 * ratio; // Entre 0.8 et 0.2 + double blue = 0.5 + 0.3 * Math.sin(ratio * Math.PI); // Entre 0.5 et 0.8 + + return Color.color(red, green, blue); } + /** * Définit la classification de l'objet. * @param classification classification à définir. @@ -57,9 +83,6 @@ public abstract class LoadableData { - - - public abstract double[] getAttributes(); public abstract String[] getStringAttributes(); diff --git a/src/main/java/fr/univlille/sae/classification/model/Pokemon.java b/src/main/java/fr/univlille/sae/classification/model/Pokemon.java index 804e95e151d88e1a59fbb6ccc5cab3d618e94e7f..5a251f7d2e1328a5cf0490bf3bd6c708c9503bd7 100644 --- a/src/main/java/fr/univlille/sae/classification/model/Pokemon.java +++ b/src/main/java/fr/univlille/sae/classification/model/Pokemon.java @@ -1,13 +1,11 @@ package fr.univlille.sae.classification.model; import com.opencsv.bean.CsvBindByName; -import javafx.scene.paint.Color; - import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; -public class Pokemon extends LoadableData { +public class Pokemon extends LoadableData{ // name,attack,base_egg_steps,capture_rate,defense,experience_growth,hp,sp_attack,sp_defense,type1,type2,speed,is_legendary // Swablu,40,5120,255.0,60,600000,45,75,50,normal,flying,1.2,False @@ -116,6 +114,7 @@ public class Pokemon extends LoadableData { + @Override public double[] getAttributes() { return new double[]{attack, baseEggSteps, captureRate, defense,