Skip to content
Snippets Groups Projects
Commit 4d45533f authored by Rioux Jeremy's avatar Rioux Jeremy
Browse files

mouvement de souris fluide

parent 14e19050
No related branches found
No related tags found
No related merge requests found
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
......@@ -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()
......
......@@ -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
......
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