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])
Смотрите также
Report an issue | ||
<< locate | interaction | seteventhandler >> |