растягиваемая рамка для прямоугольного выделения
[final_rect, btn] = rubberbox() [final_rect, btn] = rubberbox(initial_rect) [final_rect, btn] = rubberbox(edition_mode) [final_rect, btn] = rubberbox(initial_rect, edition_mode)
вектор с двумя или четырьмя элементами. С четырьмя
элементами он даёт исходный прямоугольник, определяемый
в виде [x_min, y_max, width, height]
,
где x_min
и y_max
- координаты начального угла, width
-
ширина и height
- высота; если элементов два, то
ширина и высота предполагаются нулевыми.
логическое значение, режим редактирования. Если
edition_mode
равно
%t
, то нажатие на кнопку выбирает
первый угол, отпуск кнопки выбирает противоположный
угол. Если edition_mode
равен %f
, то нажатие на кнопку или
щелчок выбирает первый угол, для выбора противоположного
угла необходимо щёлкнуть ещё раз. Значение по умолчанию
равно %f
.
прямоугольник, определяемый как [x_min, y_max,
width, height]
,где x_min
и
y_max
- координаты начального угла,
width
- ширина и
height
- высота.
целое число, количество щелчков кнопкой мыши.
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]) | ![]() | ![]() |