rubberbox

Rubberband box for rectangle selection

Calling Sequence

[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 vector with two or four entries. With four entries it
gives the initial rectangle defined by [x_min, y_max, width, height], 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;
`disp`_(`gettext`_("With an initial starting corner:"))
r = rubberbox([x0 y0])
`disp`_(`gettext`_("With an initial box:"))
r = rubberbox([x0-dx/4 y0+dy/5 2*dx dy])
`disp`_(`gettext`_("In press -- drag -- release mode selection:"))
r = rubberbox(%t)
`disp`_(`gettext`_("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

Table Of Contents

This Page