Main Content

dragrect

마우스를 사용하여 사각형을 드래그

구문

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

설명

[finalrect] = dragrect(initialrect)는 화면 어디에서든 하나 이상의 사각형을 추적합니다. n×4 행렬 initialrect로 사각형을 정의합니다. 각 initialrect 행은 [left bottom width height] 값으로 초기 사각형의 위치를 포함해야 합니다. dragrectfinalrect로 사각형의 최종 위치를 반환합니다.

[finalrect] = dragrect(initialrect,stepsize)stepsize 만큼 사각형을 이동합니다. 첫 번째 사각형의 왼쪽 아래 코너는 Figure의 왼쪽 아래 코너를 기준으로 하는 stepsize 크기의 그리드로 제한되며, 다른 모든 사각형은 첫 번째 사각형을 기준으로 하는 원래 오프셋을 유지합니다.

[finalrect] = dragrect(...)는 마우스 버튼을 놓을 때 사각형의 최종 위치를 반환합니다. 디폴트 스텝 크기는 1입니다.

예제

모두 축소

Figure에서 사각형을 추적하기 위해 먼저 trackRectangle.m이라는 프로그램 파일을 만듭니다. 프로그램 파일 내에서 다음을 수행합니다.

  • Figure를 만들고 Figure 객체를 반환합니다.

  • waitforbuttonpress 함수를 사용하여, 마우스 버튼을 클릭하기 전까지 명령문이 실행되는 것을 차단합니다.

  • dragrect 함수를 사용하여 50×100 픽셀 사각형을 표시합니다. 사각형의 왼쪽 아래 코너가 커서 위치에 있습니다.

  • 사각형을 다른 위치로 끌어서 놓습니다. 마우스 버튼을 놓으면 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 객체 안에 있는 사각형을 추적하려면 먼저 내장 상호 작용을 비활성화해야 합니다. 그러지 않으면 사각형을 끌 때 좌표축이 패닝되거나(2차원 보기의 경우) 회전하게 됩니다(3차원 보기의 경우). 내장된 상호 작용에 대한 자세한 내용은 차트 상호 작용 제어하기 항목을 참조하십시오.

trackRectangleInAxes.m이라는 프로그램 파일을 만듭니다. 프로그램 파일 내에서 다음을 수행합니다.

  • 현재 Figure를 변수로 반환합니다.

  • waitforbuttonpress 함수를 사용하여, 마우스 버튼을 클릭하기 전까지 명령문이 실행되는 것을 차단합니다.

  • dragrect 함수를 사용하여 50×100 픽셀 사각형을 표시합니다. 사각형의 왼쪽 아래 코너가 커서 위치에 있습니다.

  • 사각형을 다른 위치로 끌어서 놓습니다. 마우스 버튼을 놓으면 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)

세부 정보

모두 축소

픽셀

Windows®Macintosh 시스템에서 거리(단위: 픽셀)는 시스템 해상도와 관계가 없습니다. 즉, 다음과 같습니다.

  • Windows 시스템에서 1픽셀은 1/96인치입니다.

  • Macintosh 시스템에서 1픽셀은 1/72인치입니다.

Linux® 시스템에서 픽셀 크기는 시스템 해상도에 의해 결정됩니다.

dragrect는 현재 마우스 버튼이 눌러져 있지 않으면 즉시 반환됩니다. dragrect를 호출할 때 마우스 버튼이 눌러져 있도록 하려면 ButtonDownFcn에서 또는 명령줄에서 waitforbuttonpress와 함께 dragrect를 사용하십시오. 마우스 버튼을 놓으면 dragrect가 반환됩니다.

드래그가 Figure 창에서 끝나면 사각형의 위치는 그 Figure의 좌표계로 반환됩니다. 드래그가 Figure 창 외부에서 끝나면 사각형은 드래그가 시작된 Figure의 좌표계로 반환됩니다.

참고

dragrect는 정규화된 Figure 단위와 함께 사용할 수 없습니다.

버전 내역

R2006a 이전에 개발됨

모두 확장