dragrect

Перетащите прямоугольники с мышью

Синтаксис

[finalrect] = dragrect(initialrect)
[finalrect] = dragrect(initialrect,stepsize)

Описание

[finalrect] = dragrect(initialrect) дорожки один или несколько прямоугольников где угодно на экране. N-4 матричный initialrect задает прямоугольники. Каждая строка initialrect должен содержать начальную прямоугольную позицию как [left bottom width height] значения. dragrect возвращает конечное положение прямоугольников в finalrect.

[finalrect] = dragrect(initialrect,stepsize) перемещает прямоугольники в шаг stepsize. Левый нижний угол первого прямоугольника ограничивается к сетке размера, равного stepsize запуск в левом нижнем углу фигуры и всех других прямоугольниках обеспечивает их исходное смещение от первого прямоугольника.

[finalrect] = dragrect(...) возвращает конечные положения прямоугольников, когда кнопка мыши отпускается. Размером шага по умолчанию является 1.

Примеры

свернуть все

Чтобы отследить прямоугольник на рисунке, сначала создайте программный файл под названием trackRectangle.m. В программном файле:

  • Создайте фигуру и возвратите Figure объект.

  • Операторы блока от выполнения, пока вы не щелкаете кнопкой мыши при помощи waitforbuttonpress функция.

  • Сделайте 50 100, пиксельный прямоугольник появляется при помощи dragrect функция. Нижний левый угол прямоугольника в позиции курсора.

  • Перетащите прямоугольник к различной позиции. Когда вы отпускаете кнопку мыши, dragrect функция возвращает конечное положение прямоугольника.

function r2 = trackRectangle
    f = figure;
    waitforbuttonpress
    p = f.CurrentPoint;
    r1 = [p(1,1) p(1,2) 50 100];
    r2 = dragrect(r1);
end

Запустите программный файл. Отследите прямоугольник путем перетаскивания.

trackRectangle
ans =

   330   275    50   100

Отслеживать прямоугольник в Axes объект, необходимо сначала отключить встроенные взаимодействия. В противном случае, когда вы перетаскиваете прямоугольник, оси будут панорамировать (в 2D представлении) или вращаться (в 3-D представлении). Для получения дополнительной информации о встроенных взаимодействиях, смотрите Интерактивность Диаграммы управления.

Создайте программный файл под названием trackRectangleInAxes.m. В программном файле:

  • Возвратите текущую фигуру как переменную.

  • Операторы блока от выполнения, пока вы не щелкаете кнопкой мыши при помощи waitforbuttonpress функция.

  • Сделайте 50 100, пиксельный прямоугольник появляется при помощи dragrect функция. Нижний левый угол прямоугольника в позиции курсора.

  • Перетащите прямоугольник к различной позиции. Когда вы отпускаете кнопку мыши, dragrect функция возвращает конечное положение прямоугольника.

function r2 = trackRectangleInAxes
    f = gcf;
    waitforbuttonpress
    p = f.CurrentPoint;
    r1 = [p(1,1) p(1,2) 50 100];
    r2 = dragrect(r1);
end

Затем создайте график. Отключите встроенные взаимодействия путем вызова disableDefaultInteractivity функция.

plot(1:10)
ax = gca;
disableDefaultInteractivity(ax)

Вызовите программный файл. Отследите прямоугольник путем перетаскивания.

trackRectangleInAxes
ans =

   330   275    50   100

После отслеживания прямоугольника можно повторно включить встроенные взаимодействия путем вызова enableDefaultInteractivity функция.

enableDefaultInteractivity(ax)

Больше о

свернуть все

'pixels'

Расстояния в пикселях независимы от вашего системного разрешения по системам Макинтоша и Windows®:

  • В системах Windows пиксель составляет 1/72 дюйма.

  • В системах Macintosh пиксель составляет 1/72 дюйма.

В системах Linux® размер пикселя определяется вашим системным разрешением.

Советы

dragrect сразу возвращается, если кнопка мыши в настоящее время не нажимается. Использование dragrect в ButtonDownFcn, или из командной строки в сочетании с waitforbuttonpress, гарантировать, что кнопка мыши снижается когда dragrect называется. dragrect возвращается, когда вы отпускаете кнопку мыши.

Если концы перетаскивания по окну рисунка, положения прямоугольников возвращены в системе координат того фигуры. Если концы перетаскивания по части экрана не содержали в рамках окна рисунка, прямоугольники возвращены в системе координат фигуры, по которой началось перетаскивание.

Примечание

Вы не можете использовать нормированные модули фигуры с dragrect.

Вопросы совместимости

развернуть все

Поведение изменяется в R2020b

Представлено до R2006a