@@ -2359,16 +2359,16 @@ def _release(self, event):
2359
2359
self .to_draw .set_visible (False )
2360
2360
2361
2361
# update the eventpress and eventrelease with the resulting extents
2362
- x1 , x2 , y1 , y2 = self .extents
2363
- self .eventpress .xdata = x1
2364
- self .eventpress .ydata = y1
2362
+ x0 , x1 , y0 , y1 = self .extents
2363
+ self .eventpress .xdata = x0
2364
+ self .eventpress .ydata = y0
2365
+ xy0 = self .ax .transData .transform ([x0 , y0 ])
2366
+ self .eventpress .x , self .eventpress .y = xy0
2367
+
2368
+ self .eventrelease .xdata = x1
2369
+ self .eventrelease .ydata = y1
2365
2370
xy1 = self .ax .transData .transform ([x1 , y1 ])
2366
- self .eventpress .x , self .eventpress .y = xy1
2367
-
2368
- self .eventrelease .xdata = x2
2369
- self .eventrelease .ydata = y2
2370
- xy2 = self .ax .transData .transform ([x2 , y2 ])
2371
- self .eventrelease .x , self .eventrelease .y = xy2
2371
+ self .eventrelease .x , self .eventrelease .y = xy1
2372
2372
2373
2373
# calculate dimensions of box or line
2374
2374
if self .spancoords == 'data' :
@@ -2400,22 +2400,22 @@ def _onmove(self, event):
2400
2400
"""Motion notify event handler."""
2401
2401
# resize an existing shape
2402
2402
if self .active_handle and self .active_handle != 'C' :
2403
- x1 , x2 , y1 , y2 = self ._extents_on_press
2403
+ x0 , x1 , y0 , y1 = self ._extents_on_press
2404
2404
if self .active_handle in ['E' , 'W' ] + self ._corner_order :
2405
- x2 = event .xdata
2405
+ x1 = event .xdata
2406
2406
if self .active_handle in ['N' , 'S' ] + self ._corner_order :
2407
- y2 = event .ydata
2407
+ y1 = event .ydata
2408
2408
2409
2409
# move existing shape
2410
2410
elif (('move' in self .state or self .active_handle == 'C' )
2411
2411
and self ._extents_on_press is not None ):
2412
- x1 , x2 , y1 , y2 = self ._extents_on_press
2412
+ x0 , x1 , y0 , y1 = self ._extents_on_press
2413
2413
dx = event .xdata - self .eventpress .xdata
2414
2414
dy = event .ydata - self .eventpress .ydata
2415
+ x0 += dx
2415
2416
x1 += dx
2416
- x2 += dx
2417
+ y0 += dy
2417
2418
y1 += dy
2418
- y2 += dy
2419
2419
2420
2420
# new shape
2421
2421
else :
@@ -2446,10 +2446,10 @@ def _onmove(self, event):
2446
2446
center [0 ] += dx
2447
2447
center [1 ] += dy
2448
2448
2449
- x1 , x2 , y1 , y2 = (center [0 ] - dx , center [0 ] + dx ,
2449
+ x0 , x1 , y0 , y1 = (center [0 ] - dx , center [0 ] + dx ,
2450
2450
center [1 ] - dy , center [1 ] + dy )
2451
2451
2452
- self .extents = x1 , x2 , y1 , y2
2452
+ self .extents = x0 , x1 , y0 , y1
2453
2453
2454
2454
@property
2455
2455
def _rect_bbox (self ):
@@ -2552,13 +2552,13 @@ def _set_active_handle(self, event):
2552
2552
self .active_handle = self ._edge_order [e_idx ]
2553
2553
2554
2554
# Save coordinates of rectangle at the start of handle movement.
2555
- x1 , x2 , y1 , y2 = self .extents
2556
- # Switch variables so that only x2 and/or y2 are updated on move.
2555
+ x0 , x1 , y0 , y1 = self .extents
2556
+ # Switch variables so that only x1 and/or y1 are updated on move.
2557
2557
if self .active_handle in ['W' , 'SW' , 'NW' ]:
2558
- x1 , x2 = x2 , event .xdata
2558
+ x0 , x1 = x1 , event .xdata
2559
2559
if self .active_handle in ['N' , 'NW' , 'NE' ]:
2560
- y1 , y2 = y2 , event .ydata
2561
- self ._extents_on_press = x1 , x2 , y1 , y2
2560
+ y0 , y1 = y1 , event .ydata
2561
+ self ._extents_on_press = x0 , x1 , y0 , y1
2562
2562
2563
2563
@property
2564
2564
def geometry (self ):
@@ -2616,10 +2616,10 @@ def toggle_selector(event):
2616
2616
_shape_klass = Ellipse
2617
2617
2618
2618
def draw_shape (self , extents ):
2619
- x1 , x2 , y1 , y2 = extents
2620
- xmin , xmax = sorted ([x1 , x2 ])
2621
- ymin , ymax = sorted ([y1 , y2 ])
2622
- center = [x1 + (x2 - x1 ) / 2. , y1 + (y2 - y1 ) / 2. ]
2619
+ x0 , x1 , y0 , y1 = extents
2620
+ xmin , xmax = sorted ([x0 , x1 ])
2621
+ ymin , ymax = sorted ([y0 , y1 ])
2622
+ center = [x0 + (x1 - x0 ) / 2. , y0 + (y1 - y0 ) / 2. ]
2623
2623
a = (xmax - xmin ) / 2.
2624
2624
b = (ymax - ymin ) / 2.
2625
2625
0 commit comments