diff --git a/Objet/__pycache__/gestion_clavier.cpython-311.pyc b/Objet/__pycache__/gestion_clavier.cpython-311.pyc
index a7b1fb79db747ef6d69c155959cc35292b00e1e8..124c2c9480caed225c6d0dfdae008f8d71ba09c3 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 acab8178303e761a8a40957bd8f6b40be6dad88c..19264a5c389d48d0c0d2bad8fb832f43da817c38 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 b9a5bb884e9fee8e9c8148bd909b072fd6dd16f3..0c531f6e5aff67b0bd8815cfaeca7a7868e32057 100644
Binary files a/Objet/__pycache__/ui.cpython-311.pyc and b/Objet/__pycache__/ui.cpython-311.pyc differ
diff --git a/Objet/gestion_clavier.py b/Objet/gestion_clavier.py
index 8f6c608ac4dfafe46a47961039867d61c5f29e6d..84baf098bfe6fe06bcd58ad6784585a44f1566c6 100644
--- a/Objet/gestion_clavier.py
+++ b/Objet/gestion_clavier.py
@@ -24,6 +24,7 @@ def update(key, vid_mana, session, ui, prev_mode, mode):
     
     if key == 13:
         ui.change_setting_mode()
+        
 
     return prev_mode, mode
 
diff --git a/Objet/main.py b/Objet/main.py
index 9f731bcc30ba1ad7a7febd6acad4ba585a0432cf..95bada3bda58a81d8fad9b45f169eb729de7f8e9 100644
--- a/Objet/main.py
+++ b/Objet/main.py
@@ -58,7 +58,6 @@ class Main:
                     self.display.load_traj(self.traj)
                     self.session.next_video()
 
-            self.display.draw_shape()
             self.display.draw_traj()   
 
             if self.mode == "parameters":
@@ -66,6 +65,7 @@ class Main:
                 self.display.frame = (self.display.frame * darken_factor).astype(np.uint8)
 
             if self.ui.is_mouse_moving():
+                self.display.draw_shape()
                 self.display.draw_all_points()
 
             cv2.imshow('main', self.display.frame)
diff --git a/Objet/ui.py b/Objet/ui.py
index ff4b5d63441bb31dbbe1be9a02ae5fa36c156f80..6d14687bdcf7593791e61f0033363b5b9776e327 100644
--- a/Objet/ui.py
+++ b/Objet/ui.py
@@ -33,7 +33,7 @@ class UI:
 
         self.point_pp = copy.copy(self.point_defaut)
 
-        self.linked = False
+        self.setting_locked = False
 
         
     def update_bar(self):
@@ -43,6 +43,8 @@ class UI:
     def move_parameters(self):
         cv2.setMouseCallback('main', self.mouse_event)
         self.update_bar()
+        if self.setting_locked:
+            self.update_linked()
         if self.dragging and self.point_near:
             self.actu_para()
         else :
@@ -88,9 +90,9 @@ class UI:
             self.point_pp = copy.copy(self.point_defaut)
     
     def change_setting_mode(self):
-        if not self.linked:
+        if not self.setting_locked:
             self.update_user_info()
-        self.linked = not self.linked
+        self.setting_locked = not self.setting_locked
 
     def update_user_info(self):
         def get_point(name):
@@ -172,7 +174,7 @@ class UI:
 
         point = self.point_pp
         name = point.name
-        if not self.linked:
+        if not self.setting_locked:
             if name == "net":          
                 update_ref("ant_tl")
                 update_ref("ant_bl")
@@ -182,14 +184,14 @@ class UI:
 
             if name == "ant_bl":
                 valid_to_right("ant_br")
-                update_ref("ant_tl")
-                update()
+                update_ref_x("ant_tl")
+                update_x()
                 update_center("net", "ant_bl", "ant_br")
             
             if name == "ant_br":
                 valid_to_left("ant_bl")
-                update_ref("ant_tr")
-                update()
+                update_ref_x("ant_tr")
+                update_x()
                 update_center("net", "ant_bl", "ant_br")
             
             if name == "ant_tl":
@@ -300,46 +302,68 @@ class UI:
                 valid_to_right("bar_point_right")
                 update_x()
         else:
-            net = get_point("net")
-            ant_height = net.y - get_point("ant_tl").y
             if name == "ant_tl":
                 valid_to_down("ant_bl")
                 valid_to_right("ant_tr")
-                update_y()
+                update()
+                get_point("ant_bl").x = get_point("ant_tl").x
                 get_point("ant_tr").y = get_point("ant_tl").y
-                get_point("set_height").y = net.y - self.set_height * ant_height
-                get_point("set_margin_over").y = net.y - self.set_margin_over * ant_height
-                get_point("set_margin_under").y = net.y - self.set_margin_under * ant_height
-                get_point("wind_l_tl").y = net.y - self.wind_l_t * ant_height
-                get_point("wind_l_bl").y = net.y - self.wind_l_b * ant_height
-                get_point("wind_l_tr").y = net.y - self.wind_l_t * ant_height
-                get_point("wind_l_br").y = net.y - self.wind_l_b * ant_height
-                update_center("wind_l_m", "wind_l_tl", "wind_l_br")
-                get_point("wind_r_tl").y = net.y - self.wind_r_t * ant_height
-                get_point("wind_r_bl").y = net.y - self.wind_r_b * ant_height
-                get_point("wind_r_tr").y = net.y - self.wind_r_t * ant_height
-                get_point("wind_r_br").y = net.y - self.wind_r_b * ant_height
-                update_center("wind_r_m", "wind_r_tl", "wind_r_br")
-
             if name == "ant_tr":
                 valid_to_down("ant_br")
                 valid_to_left("ant_tl")
-                update_y()
+                update()
+                get_point("ant_br").x = get_point("ant_tr").x
                 get_point("ant_tl").y = get_point("ant_tr").y
-                get_point("set_height").y = net.y - self.set_height * ant_height
-                get_point("set_margin_over").y = net.y - self.set_margin_over * ant_height
-                get_point("set_margin_under").y = net.y - self.set_margin_under * ant_height
-                get_point("wind_l_tl").y = net.y - self.wind_l_t * ant_height
-                get_point("wind_l_bl").y = net.y - self.wind_l_b * ant_height
-                get_point("wind_l_tr").y = net.y - self.wind_l_t * ant_height
-                get_point("wind_l_br").y = net.y - self.wind_l_b * ant_height
-                update_center("wind_l_m", "wind_l_tl", "wind_l_br")
-                get_point("wind_r_tl").y = net.y - self.wind_r_t * ant_height
-                get_point("wind_r_bl").y = net.y - self.wind_r_b * ant_height
-                get_point("wind_r_tr").y = net.y - self.wind_r_t * ant_height
-                get_point("wind_r_br").y = net.y - self.wind_r_b * ant_height
-                update_center("wind_r_m", "wind_r_tl", "wind_r_br")
+            if name == "ant_bl":
+                valid_to_up("ant_tl")
+                valid_to_right("ant_br")
+                update()
+                get_point("ant_tl").x = get_point("ant_bl").x
+                get_point("ant_br").y = get_point("ant_bl").y
+            if name == "ant_br":
+                valid_to_up("ant_tr")
+                valid_to_left("ant_bl")
+                update()
+                get_point("ant_tr").x = get_point("ant_br").x
+                get_point("ant_bl").y = get_point("ant_br").y
             
+    def update_linked(self):
+        def get_point(name):
+            return self.param.get_point(name)
+        def update_center(name1, name2, name3):
+            get_point(name1).x = self.param.get_center_x(name2, name3)
+            get_point(name1).y = self.param.get_center_y(name2, name3)
+
+        net = get_point("net")
+        ant_height = net.y - get_point("ant_tl").y
+        ant_witdh = get_point("ant_tr").x - get_point("ant_tl").x
+        
+        get_point("set_height").y = net.y - self.set_height * ant_height
+        get_point("set_margin_over").y = net.y - self.set_margin_over * ant_height
+        get_point("set_margin_under").y = net.y - self.set_margin_under * ant_height
+        get_point("wind_l_tl").y = net.y - self.wind_l_t * ant_height
+        get_point("wind_l_bl").y = net.y - self.wind_l_b * ant_height
+        get_point("wind_l_tr").y = net.y - self.wind_l_t * ant_height
+        get_point("wind_l_br").y = net.y - self.wind_l_b * ant_height
+        
+        get_point("wind_r_tl").y = net.y - self.wind_r_t * ant_height
+        get_point("wind_r_bl").y = net.y - self.wind_r_b * ant_height
+        get_point("wind_r_tr").y = net.y - self.wind_r_t * ant_height
+        get_point("wind_r_br").y = net.y - self.wind_r_b * ant_height
+
+        get_point("wind_l_tl").x = get_point("ant_tl").x + self.wind_l_l * ant_witdh
+        get_point("wind_l_bl").x = get_point("ant_tl").x + self.wind_l_l * ant_witdh
+        get_point("wind_l_tr").x = get_point("ant_tl").x + self.wind_l_r * ant_witdh
+        get_point("wind_l_br").x = get_point("ant_tl").x + self.wind_l_r * ant_witdh
+        get_point("wind_r_tl").x = get_point("ant_tr").x - self.wind_r_l * ant_witdh
+        get_point("wind_r_bl").x = get_point("ant_tr").x - self.wind_r_l * ant_witdh
+        get_point("wind_r_tr").x = get_point("ant_tr").x - self.wind_r_r * ant_witdh
+        get_point("wind_r_br").x = get_point("ant_tr").x - self.wind_r_r * ant_witdh
+
+        update_center("wind_l_m", "wind_l_tl", "wind_l_br")
+        update_center("wind_r_m", "wind_r_tl", "wind_r_br")
+        update_center("net", "ant_bl", "ant_br")
+
 
 if __name__ == "__main__":
     subprocess.run(["python", "Objet/Main.py"])
\ No newline at end of file