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