# rubberbox

Caixa tipo liga de borracha para seleção de um retângulo

## Seqüência de Chamamento

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

## Parâmetros

initial_rect

  vetor de duas a quatro entradas. Com quatro entradas fornece o retângulo inicial definido por [x_esquerdo, y_topo, largura, altura]. Com duas entradas, largura e altura são supostas 0.

edition_mode

  um booleano, se edition_mode==%t; um aperto de botão seleciona a primeira quina, soltar seleciona a quina oposta. Se edition_mode== %f, aperto de botão ou clique seleciona a primeira quina, um clique é requerido para selecionar a quina oposta. O valor padrão é edition_mode=%f

final_rect

  um retângulo definido por [x_esquerdo, y_topo, largura, altura]

btn

  um inteiro, o número do botão do mouse clicado

## Descrição

`rubberbox(initial_rect)` trilha uma caixa liga de borracha na janela de gráficos corrente, seguindo o mouse. Quando um botão é clicado, `rubberbox` retorna a definição dos retângulos finais `final_Rect`. Se o argumento `initial_rect` estiver presente, o usuário deve clicar para fixar a posição da quina inicial.

## Exemplos

    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("With an initial starting corner: 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("With an initial box: x0 = %0.2f, y0 = %0.2f, width = %0.2f, height = %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("In press -- drag -- release mode selection:")
    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("In starting click -- drag -- stopping click mode selection:")
    r = rubberbox()

## Ver Também

- xrect
- xrects
- xclick
- xgetmouse
- dragrect