Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2024.1.0 - English


rubberbox

rubberband box for rectangle selection

Syntax

[final_rect, btn] = rubberbox()
[final_rect, btn] = rubberbox(initial_rect)
[final_rect, btn] = rubberbox(edition_mode)
[final_rect, btn] = rubberbox(initial_rect, edition_mode)

Arguments

initial_rect

a vector with two or four entries. With four entries it gives the initial rectangle defined by [x_min, y_max, width, height] (where x_min and y_max are coordinates of initial corner position, with two entries width and height are supposed to be 0.

edition_mode

a boolean, if edition_mode is %t button press selects the first corner, release selects the opposite corner. If edition_mode is %f, a button press or click selects the first corner, a click is requested to select the opposite corner. The default value is %f.

final_rect

a rectangle defined by [x_min, y_max, width, height].

btn

an integer, the number of the mouse button clicked.

Description

rubberbox(initial_rect) tracks a rubberband box in the current graphic window, following the mouse. When a button is clicked rubberbox returns the final rectangles definition in final_Rect. If the argument initial_rect is not specified, a click is needed to fix the initial corner position.

Examples

clf
plot2d()
a = gca();
db = a.data_bounds;
x0 = (db(1)*2+db(2))/3;
dx = (db(2)-db(1))/3;
y0 = (db(3)+db(4)*2)/3;
dy = (db(4)-db(3))/3;
xtitle(msprintf("With an initial starting corner: x0 = %0.2f, y0 = %0.2f",x0,y0))
r = rubberbox([x0 y0])
clf
plot2d()
a = gca();
db = a.data_bounds;
x0 = (db(1)*2+db(2))/3;
dx = (db(2)-db(1))/3;
y0 = (db(3)+db(4)*2)/3;
dy = (db(4)-db(3))/3;
xtitle(msprintf("With an initial box: x0 = %0.2f, y0 = %0.2f, width = %0.2f, height = %0.2f,",x0-dx/4,y0+dy/5,2*dx,dy))
r = rubberbox([x0-dx/4 y0+dy/5 2*dx dy])
clf
plot2d()
a = gca();
db = a.data_bounds;
x0 = (db(1)*2+db(2))/3;
dx = (db(2)-db(1))/3;
y0 = (db(3)+db(4)*2)/3;
dy = (db(4)-db(3))/3;
xtitle("In press -- drag -- release mode selection:")
r = rubberbox(%t)
clf
plot2d()
a = gca();
db = a.data_bounds;
x0 = (db(1)*2+db(2))/3;
dx = (db(2)-db(1))/3;
y0 = (db(3)+db(4)*2)/3;
dy = (db(4)-db(3))/3;
xtitle("In starting click -- drag -- stopping click mode selection:")
r = rubberbox()

See also

  • xrect — draw a rectangle
  • xrects — draw or fill a set of rectangles
  • xclick — Wait for a mouse click or an event in a graphic window.
  • xgetmouse — get the mouse events and current position
  • dragrect — Drag rectangle(s) with mouse
Report an issue
<< locate interaction seteventhandler >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Jun 17 17:49:17 CEST 2024