From 5d37038724afebc158110a9013ab4bb5c1bdc472 Mon Sep 17 00:00:00 2001 From: Lucas Philippe <lucasphilippe@MacBook-Air-de-Lucas.local> Date: Thu, 18 Jan 2024 11:15:07 +0100 Subject: [PATCH] Etape 6 fonctionnelle --- TP1/BubbleCursor.py | 2 +- TP1/BubbleWidget.py | 20 +++++++++++++++++++- TP1/Target.py | 7 +++++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/TP1/BubbleCursor.py b/TP1/BubbleCursor.py index 8e4e261..49d54c0 100644 --- a/TP1/BubbleCursor.py +++ b/TP1/BubbleCursor.py @@ -21,7 +21,7 @@ class BubbleCursor: for target in self.targets: distance = ((self.x - target.x) ** 2 + (self.y - target.y) ** 2) ** 0.5 # cf. Theoreme de Pythagore - distance = distance - target.size/2 # Prendre la distance avec le contour du cercle et pas le centre + distance = distance - target.size/2 # Prendre la distance avec le contour du cercle et pas le centre if distance < min_distance: min_distance = distance self.closest = target diff --git a/TP1/BubbleWidget.py b/TP1/BubbleWidget.py index 8a47450..1f1c20d 100644 --- a/TP1/BubbleWidget.py +++ b/TP1/BubbleWidget.py @@ -1,4 +1,4 @@ -import csv +import csv, random, time from PyQt5.QtGui import QPainter from PyQt5.QtWidgets import QWidget from Target import Target @@ -11,6 +11,8 @@ class BubbleWidget(QWidget): self.loadTargets() self.cursor = BubbleCursor(self.targets) self.setMouseTracking(True) + self.start_time = None + self.selectRandomTarget() def loadTargets(self): with open('src_tp_bubble.csv', newline='') as csvfile: @@ -29,3 +31,19 @@ class BubbleWidget(QWidget): def mouseMoveEvent(self, event): self.cursor.move(event.x(), event.y()) self.update() + + def selectRandomTarget(self): + if self.start_time == None: + self.start_time = time.time() + target = random.choice(self.targets) + target.toSelect = True + self.update() + + def printTime(self): + print((time.time() - self.start_time)*1000) + self.start_time = None + + def mousePressEvent(self, event): + if self.cursor.closest.click_cible(): + self.printTime() + self.selectRandomTarget() diff --git a/TP1/Target.py b/TP1/Target.py index 52f415b..7ebcc13 100644 --- a/TP1/Target.py +++ b/TP1/Target.py @@ -24,3 +24,10 @@ class Target: painter.setBrush(QBrush(color)) painter.setPen(QPen(color)) painter.drawEllipse(int(self.x - self.size / 2), int(self.y - self.size / 2), int(self.size), int(self.size)) + + def click_cible(self): + if self.toSelect: + self.toSelect = False + return True + return False + -- GitLab