diff --git a/Objet/__pycache__/display.cpython-311.pyc b/Objet/__pycache__/display.cpython-311.pyc index 47c03061a540418584efdf3d7ea6e7fdba203caa..e34941d41697f6c341f6bf9d56f46a8546b36e41 100644 Binary files a/Objet/__pycache__/display.cpython-311.pyc and b/Objet/__pycache__/display.cpython-311.pyc differ diff --git a/Objet/__pycache__/gestion_clavier.cpython-311.pyc b/Objet/__pycache__/gestion_clavier.cpython-311.pyc index 23521c0e6553991526708d81d478d2fe60dcd60c..1ddf70342171c8cbcc48e2f4f4ff1ab8c0a1abf7 100644 Binary files a/Objet/__pycache__/gestion_clavier.cpython-311.pyc and b/Objet/__pycache__/gestion_clavier.cpython-311.pyc differ diff --git a/Objet/__pycache__/parameters.cpython-311.pyc b/Objet/__pycache__/parameters.cpython-311.pyc index 9997445863ed0721673cbb0b8a9d416fd5347fe2..19430169ef99b849616cfc7c91eb2a4806a4b41f 100644 Binary files a/Objet/__pycache__/parameters.cpython-311.pyc and b/Objet/__pycache__/parameters.cpython-311.pyc differ diff --git a/Objet/__pycache__/ui.cpython-311.pyc b/Objet/__pycache__/ui.cpython-311.pyc index 892a0bac6e14abb4e6600c07e26e129483ef640b..e3232c7ef51cdc8bc2cefe21d73785579693ed16 100644 Binary files a/Objet/__pycache__/ui.cpython-311.pyc and b/Objet/__pycache__/ui.cpython-311.pyc differ diff --git a/Objet/__pycache__/video_manager.cpython-311.pyc b/Objet/__pycache__/video_manager.cpython-311.pyc index d585046aec8b7ecf4085b94f5440c4c0a638c932..c623ba62a664db4291ff0bcd6d3ac8e8a776ffc8 100644 Binary files a/Objet/__pycache__/video_manager.cpython-311.pyc and b/Objet/__pycache__/video_manager.cpython-311.pyc differ diff --git a/Objet/main.py b/Objet/main.py index 07664f73bdd885ee20a6a4e9eb293c3fd6ef4dfc..4b2704847e4c1d4792e2911579044ac53d25fd00 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 27454af727d19eb022e46cd37ebe9b329b1dd823..aad02a27cc04009437f670ea8d8a80eecad29acc 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