Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2024.0.0 - Русский


rubberbox

растягиваемая рамка для прямоугольного выделения

Синтаксис

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

Аргументы

initial_rect

вектор с двумя или четырьмя элементами. С четырьмя элементами он даёт исходный прямоугольник, определяемый в виде [x_min, y_max, width, height], где x_min и y_max - координаты начального угла, width - ширина и height - высота; если элементов два, то ширина и высота предполагаются нулевыми.

edition_mode

логическое значение, режим редактирования. Если edition_mode равно %t, то нажатие на кнопку выбирает первый угол, отпуск кнопки выбирает противоположный угол. Если edition_mode равен %f, то нажатие на кнопку или щелчок выбирает первый угол, для выбора противоположного угла необходимо щёлкнуть ещё раз. Значение по умолчанию равно %f.

final_rect

прямоугольник, определяемый как [x_min, y_max, width, height] ,где x_min и y_max - координаты начального угла, width - ширина и height - высота.

btn

целое число, количество щелчков кнопкой мыши.

Описание

rubberbox(initial_rect) тянет растягиваемую рамку в текущем графическом окне, следуя за мышью. При щелчке мышью rubberbox возвращает определение конечного прямоугольника в final_Rect. Если аргумент initial_rect не определён, то для фиксации положения начального угла необходим щелчок мыши.

Примеры

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("С исходным начальным углом: 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("С исходной рамкой: x0 = %0.2f, y0 = %0.2f, ширина = %0.2f, высота = %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("Режим выбора: нажать -- тащить -- отпустить")
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("Режим выбора: щёлкнуть -- тащить -- щёлкнуть")
r = rubberbox()

Смотрите также

  • 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:
Tue Oct 24 14:37:08 CEST 2023