Skip to content
Snippets Groups Projects
Commit e1dd373c authored by Lucas Philippe's avatar Lucas Philippe
Browse files

debut TP1, fin de séance, fin Q5, commencement de Q6, bug au niveau de la reduction de bubblecursor

parent 94dad5d0
No related branches found
No related tags found
No related merge requests found
from PyQt5.QtGui import QColor
class BubbleCursor:
defaultCol=QColor("green")
def __init__(self, targets):
self.x = 0
self.y = 0
self.size = 50
self.targets = targets
self.closest = None
def paint(self, painter):
painter.setBrush(self.defaultCol)
painter.drawEllipse(self.x - self.size, self.y - self.size, self.size * 2, self.size * 2)
def move(self, moveX, moveY):
self.x = moveX
self.y = moveY
self.closest = None
minDistance = float('inf')
for target in self.targets:
target.highlighted = False
for target in self.targets:
distance = self.distanceToTarget(target)
if distance < minDistance:
minDistance = distance
self.closest = target
if self.closest is not None:
self.closest.highlighted = True
self.size = minDistance - self.closest.size / 2
def distanceToTarget(self, target):
distanceCentre = ((self.x - target.x) ** 2 + (self.y - target.y) ** 2) ** 0.5
return abs(distanceCentre - target.size / 2)
import csv
from PyQt5.QtGui import QPainter
from PyQt5.QtWidgets import QWidget
from Target import Target
from BubbleCursor import BubbleCursor
class BubbleWidget(QWidget):
def __init__(self):
super().__init__()
self.targets = []
self.loadTargets()
self.cursor = BubbleCursor(self.targets)
self.setMouseTracking(True)
def loadTargets(self):
with open('src_tp_bubble.csv', newline='') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
if len(row) >= 3:
x, y, size = map(int, row[:3])
self.targets.append(Target(x,y,size))
def paintEvent(self, event):
print("paintEvent appelé")
painter = QPainter(self)
for target in self.targets:
target.paint(painter)
self.cursor.paint(painter)
def mouseMoveEvent(self, event):
print("mouseMoveEvent appelé")
self.cursor.move(event.x(), event.y())
self.update()
import sys
from PyQt5.QtGui import QPainter
from PyQt5.QtWidgets import QApplication, QMainWindow
from BubbleWidget import BubbleWidget
def main():
app = QApplication(sys.argv)
main_window = QMainWindow()
main_window.resize(1024, 800)
bubble_widget = BubbleWidget()
main_window.setCentralWidget(bubble_widget)
main_window.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
from PyQt5.QtGui import QColor
class Target:
defaultCol = QColor("green")
highlightCol = QColor("red")
toSelectCol = QColor("blue")
def __init__(self, x, y, size):
self.x = x
self.y = y
self.size = size
self.toSelect = False
self.highlighted = False
def paint(self, painter):
if self.toSelect:
painter.setBrush(self.toSelectCol)
elif self.highlighted:
painter.setBrush(self.highlightCol)
else:
painter.setBrush(self.defaultCol)
painter.drawEllipse(self.x - self.size / 2, self.y - self.size / 2, self.size, self.size)
\ No newline at end of file
File added
File added
File added
381,453,17
320,81,17
71,705,14
251,441,7
557,644,9
209,9,13
185,632,13
179,752,21
815,368,24
840,258,20
978,726,22
898,334,17
709,671,17
79,446,10
320,299,14
129,238,16
940,10,6
806,476,8
626,538,7
786,725,15
840,639,14
562,527,10
1000,307,22
197,561,19
920,608,14
218,322,24
849,356,19
13,765,23
282,335,8
369,151,16
415,320,13
443,244,9
592,228,17
640,58,13
366,127,18
57,760,19
932,670,12
761,297,10
438,169,14
588,329,23
958,551,18
198,217,7
35,717,14
955,655,8
267,217,23
159,558,24
464,53,9
264,255,15
1013,92,15
575,450,23
355,683,23
696,624,21
469,143,17
725,652,19
338,765,8
1012,46,11
580,621,21
673,478,18
850,386,13
622,167,21
137,107,17
396,172,7
960,702,13
804,105,8
527,263,17
692,417,15
1014,755,14
735,677,19
944,126,10
814,510,19
33,326,18
520,105,24
654,141,19
926,548,16
809,183,9
484,627,22
283,405,11
754,65,16
313,33,19
456,276,15
16,166,15
576,371,24
664,74,20
362,538,18
69,295,11
573,175,13
650,522,14
393,223,21
517,571,9
887,173,11
914,495,22
455,371,11
767,203,16
992,640,14
682,391,11
801,280,17
222,109,9
887,243,12
910,166,21
508,154,8
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment