diff --git a/TP1/BubbleCursor.py b/TP1/BubbleCursor.py index 8e4e2618ff829170672459927ffa156142f5d3ea..49d54c06e02cbb81d3924c1d3f0c3956ccca3a2f 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 8a47450322250f386464f32e11ae63f3ad43302c..1f1c20d3de186a777eb8e829e9cfc920d8d582b8 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 52f415bd6b860ece4c862777783316d83bff1a3b..7ebcc1383cdc7f6cbcb343662b0e23058a722a5d 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 +