From 4d45533f2307ecf2bef4f349896284640fc4a369 Mon Sep 17 00:00:00 2001 From: jeje <jeremy.rioux@student-cs.fr> Date: Tue, 25 Mar 2025 11:01:11 +0100 Subject: [PATCH] mouvement de souris fluide --- Objet/__pycache__/display.cpython-311.pyc | Bin 7900 -> 7900 bytes .../gestion_clavier.cpython-311.pyc | Bin 1456 -> 1456 bytes Objet/__pycache__/parameters.cpython-311.pyc | Bin 8163 -> 8163 bytes Objet/__pycache__/ui.cpython-311.pyc | Bin 26461 -> 28401 bytes .../__pycache__/video_manager.cpython-311.pyc | Bin 5804 -> 5804 bytes Objet/main.py | 5 +- Objet/ui.py | 51 +++++++++++++++--- 7 files changed, 47 insertions(+), 9 deletions(-) diff --git a/Objet/__pycache__/display.cpython-311.pyc b/Objet/__pycache__/display.cpython-311.pyc index 47c03061a540418584efdf3d7ea6e7fdba203caa..e34941d41697f6c341f6bf9d56f46a8546b36e41 100644 GIT binary patch delta 20 acmca(d&ic0IWI340}zN`zqOJ3q8tE3G6sAA delta 20 acmca(d&ic0IWI340}#A6xv`P^q8tE5A_l7f diff --git a/Objet/__pycache__/gestion_clavier.cpython-311.pyc b/Objet/__pycache__/gestion_clavier.cpython-311.pyc index 23521c0e6553991526708d81d478d2fe60dcd60c..1ddf70342171c8cbcc48e2f4f4ff1ab8c0a1abf7 100644 GIT binary patch delta 20 acmdnMy@8v1IWI340}zN`zqOHjDJuXrF$H@7 delta 20 acmdnMy@8v1IWI340}v>f-`L2#lobFnrUc>u diff --git a/Objet/__pycache__/parameters.cpython-311.pyc b/Objet/__pycache__/parameters.cpython-311.pyc index 9997445863ed0721673cbb0b8a9d416fd5347fe2..19430169ef99b849616cfc7c91eb2a4806a4b41f 100644 GIT binary patch delta 27 hcmaEC|Ja^;IWI340}zN`zqOHDi;ppRvl-u7K>&432k-y@ delta 27 hcmaEC|Ja^;IWI340}wcx-`L2l#mDHp*^F<kAOLQl2Uq|A diff --git a/Objet/__pycache__/ui.cpython-311.pyc b/Objet/__pycache__/ui.cpython-311.pyc index 892a0bac6e14abb4e6600c07e26e129483ef640b..e3232c7ef51cdc8bc2cefe21d73785579693ed16 100644 GIT binary patch delta 5621 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 delta 3966 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 diff --git a/Objet/__pycache__/video_manager.cpython-311.pyc b/Objet/__pycache__/video_manager.cpython-311.pyc index d585046aec8b7ecf4085b94f5440c4c0a638c932..c623ba62a664db4291ff0bcd6d3ac8e8a776ffc8 100644 GIT binary patch delta 27 hcmZ3ZyGECLIWI340}wD(Jle=D&d%t(S(&|)9{^sp26zAf delta 27 hcmZ3ZyGECLIWI340}$|kIJc2ooSiXwvod=pKLBM@2MGWG diff --git a/Objet/main.py b/Objet/main.py index 07664f7..4b27048 100644 --- a/Objet/main.py +++ b/Objet/main.py @@ -60,10 +60,9 @@ class Main: darken_factor = 0.5 self.display.frame = (self.display.frame * darken_factor).astype(np.uint8) - print(self.ui.get_brightness()) if self.ui.is_mouse_moving(): - self.display.draw_shape(self.ui.get_brightness()) - self.display.draw_all_points(self.ui.get_brightness()) + self.display.draw_shape(self.ui.brightness) + self.display.draw_all_points(self.ui.brightness) self.display.draw_traj() self.display.display() diff --git a/Objet/ui.py b/Objet/ui.py index 27454af..aad02a2 100644 --- a/Objet/ui.py +++ b/Objet/ui.py @@ -31,6 +31,10 @@ class UI: self.touch_bar = False self.last_mouse_move = time.time() self.flag_mouse_moving = False + self.flag_mouse_freeze = False + self.phase = 'imm' + self.brightness = 0 + self.time_phase = 0 self.point_pp = copy.copy(self.point_defaut) @@ -43,6 +47,7 @@ class UI: def move_parameters(self): cv2.setMouseCallback('main', self.mouse_event) + self.update_phase() self.update_bar() if self.setting_locked: self.update_linked() @@ -55,19 +60,53 @@ class UI: self.point_sel.y = self.point_pp.y def is_mouse_moving(self): - return time.time() - self.last_mouse_move < 0.5 or self.point_near + return time.time() - self.last_mouse_move < 0.6 or self.point_near + def update_phase(self): + if self.phase == 'imm': + if time.time() - self.last_mouse_move <= 0.1: + self.phase = 'up' + self.time_phase = time.time() + self.brightness = 0 + elif self.phase == 'up': + if time.time() - self.time_phase <= 0.2: + self.brightness = (time.time() - self.time_phase)*5 + else: + self.phase = 'mov' + self.brightness = 1 + self.time_phase = time.time() + elif self.phase == 'mov': + if self.point_near: + self.last_mouse_move = time.time() + if time.time() - self.last_mouse_move >= 0.4: + self.phase = 'down' + self.time_phase = time.time() + self.brightness = 1 + elif self.phase == 'down': + if time.time() - self.last_mouse_move <= 0.1: + self.phase = 'mov' + self.time_phase = time.time() + elif time.time() - self.time_phase <= 0.2: + self.brightness = 1 - (time.time() - self.time_phase)*5 + else: + self.phase = 'imm' + self.brightness = 0 + print(self.phase, round(self.brightness, 3)) + + def get_brightness(self): if not self.flag_mouse_moving: self.mouse_begin_move = self.last_mouse_move self.flag_mouse_moving = True - if 0 <= time.time() - self.mouse_begin_move <= 0.1: - return (time.time() - self.mouse_begin_move)*10 - elif time.time() - self.mouse_begin_move <= 0.5: + if 0 <= time.time() - self.mouse_begin_move <= 0.2: + return (time.time() - self.mouse_begin_move)*5 + elif time.time() - self.last_mouse_move <= 0.4: return 1 - elif 0.5 >= time.time() - self.mouse_begin_move >= 0.4: - return (0.5 - (time.time() - self.mouse_begin_move))*10 + elif 0.6 >= time.time() - self.last_mouse_move >= 0.4 and not self.point_near: + return (0.6 - (time.time() - self.last_mouse_move))*5 self.flag_mouse_moving = False + if self.point_near: + self.flag_mouse_moving = False return 1 -- GitLab