From b8ebb911cb047073936fc9d46de5f66693a36efa Mon Sep 17 00:00:00 2001
From: Lucas Philippe <lucasphilippe@MacBook-Air-de-Lucas.local>
Date: Thu, 11 Apr 2024 11:29:49 +0200
Subject: [PATCH] correction etape 7 et etape 8

---
 TP5/sketch_240321a/sketch_240321a.pde | 36 +++++++++++++++++----------
 1 file changed, 23 insertions(+), 13 deletions(-)

diff --git a/TP5/sketch_240321a/sketch_240321a.pde b/TP5/sketch_240321a/sketch_240321a.pde
index 4023ed9..5135446 100644
--- a/TP5/sketch_240321a/sketch_240321a.pde
+++ b/TP5/sketch_240321a/sketch_240321a.pde
@@ -36,7 +36,7 @@ void setup() {
 }
 
 void draw() {
-  if (!redrawInProgress) { // Ne dessinez que si les données ne sont pas en cours de mise à jour
+  if (!redrawInProgress) {
     background(255);
     fill(0);
     textSize(20);
@@ -73,8 +73,8 @@ void readData() {
   
   ArrayList<City> filteredCities = new ArrayList<City>();
   if (lines != null && lines.length > 2) {
-    parseInfo(lines[0]); // Lire les informations d'en-tête
-    for (int i = 2; i < lines.length; i++) { // Assurez-vous de ne pas dépasser les bornes des lignes
+    parseInfo(lines[0]);
+    for (int i = 2; i < lines.length; i++) {
       String[] columns = split(lines[i], TAB);
       float pointX = float(columns[x]);
       float pointY = float(columns[y]);
@@ -86,12 +86,12 @@ void readData() {
 
   totalCount = filteredCities.size();
   cities = filteredCities.toArray(new City[totalCount]);
-  redrawInProgress = false; // La mise à jour est terminée
+  redrawInProgress = false;
   redraw();
 }
 
 void parseInfo(String line) {
-  String infoString = line.substring(2); // remove the #
+  String infoString = line.substring(2);
   String[] infoPieces = split(infoString, ',');
   totalCount = int(infoPieces[0]);
   minX = float(infoPieces[1]);
@@ -171,16 +171,26 @@ void mouseMoved() {
 }
 
 void mousePressed(){
-  /*City city = pick(mouseX, mouseY);
-  if(city != null) {
-    println("city clicked: " + city.name);
-  }
-  lastCityClicked = city;
-  lastCityClicked.isClicked = true;
-  redraw();*/
-  if (dist(mouseX, mouseY, sliderPosition, sliderY + sliderHeight / 2) < 10) {
+  // Vérifie d'abord si le clic est sur le slider
+  float distanceToSlider = dist(mouseX, mouseY, sliderPosition, sliderY + sliderHeight / 2);
+  if (distanceToSlider < 20) { // Supposons que la poignée du slider a un rayon d'action de 20 pixels pour faciliter l'interaction
     draggingSlider = true;
     updateSliderPosition();
+  } else {
+    // Sinon, vérifie si le clic est sur une ville
+    City city = pick(mouseX, mouseY);
+    if (city != null) {
+      println("City clicked: " + city.name);
+      if (lastCityClicked != null) {
+        lastCityClicked.isClicked = false; // Désélectionnez l'ancienne ville cliquée, si nécessaire
+      }
+      lastCityClicked = city;
+      lastCityClicked.isClicked = true;
+    } else if (lastCityClicked != null) {
+      lastCityClicked.isClicked = false;
+      lastCityClicked = null;
+    }
+    redraw();
   }
 }
 
-- 
GitLab