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