Main Content

Figure와 좌표축에 대한 액세스 방지하기

액세스를 방지해야 하는 이유

특정 Figure나 좌표축이 그래픽스 출력의 대상이 되지 않도록 해야 하는 경우가 있습니다. 즉, gcf로 반환되는 경우 현재 Figure가 되지 않도록 하거나 gca로 반환되는 경우 현재 좌표축이 되지 않도록 해야 합니다.

사용자 인터페이스를 구현하는 컨트롤을 포함하는 Figure에 대한 액세스를 방지해야 하는 경우도 있습니다. 또는, 특정 애플리케이션으로만 액세스되는, 애플리케이션에 포함되는 좌표축에 대한 액세스를 방지해야 하는 경우도 있습니다.

액세스를 방지하는 방법

MATLAB® 함수의 핸들을 가시적 핸들의 목록에서 제거하여 해당 함수를 특정 Figure 또는 좌표축의 대상이 되지 않도록 합니다.

핸들의 가시성을 제어하는 속성으로는 HandleVisibilityShowHiddenHandles, 두 가지가 있습니다.

HandleVisibility는 모든 그래픽스 객체의 속성입니다. 이 속성은 객체 핸들의 가시성을 제어하며, 다음과 같이 세 가지 값을 가질 수 있습니다.

  • 'on'gcf, gca, gco, get, findobj와 같이 핸들을 반환하는 함수로 객체 핸들을 가져올 수 있습니다. 이는 디폴트 동작입니다.

  • 'callback' — 객체 핸들이 콜백 함수의 작업 공간 내에서만 표시됩니다.

  • 'off' — 핸들이 명령 창과 콜백 함수에서 실행되는 모든 함수에서 표시되지 않습니다.

핸들 가시성의 영향을 받는 속성

객체의 HandleVisibility'callback' 또는 'off'로 설정된 경우 발생하는 동작은 다음과 같습니다.

  • 객체 핸들이 부모의 Children 속성에 표시되지 않습니다.

  • 루트의 CurrentFigure 속성에 Figure가 표시되지 않습니다.

  • 포함하는 Figure의 CurrentAxes 속성에 좌표축이 표시되지 않습니다.

  • Figure의 CurrentObject 속성에 그래픽스 객체가 표시되지 않습니다.

핸들 가시성의 영향을 받는 함수

핸들이 그 부모의 자식 목록에 표시되지 않는다면 객체 계층 구조를 검색하여 핸들을 가져오는 함수는 핸들을 반환할 수 없습니다. 이러한 함수로는 get, findobj, gca, gcf, gco, newplot, cla, clf, close가 있습니다.

gca 및 gcf에서 반환되는 값

숨겨진 핸들 Figure가 화면 맨 위에 배치되고 그 밑에 가시적 핸들 Figure가 배치되는 경우 gcf는 쌓임 순서에서 맨 위에 배치되는 가시 핸들 Figure를 반환합니다. 동일한 동작이 gca에도 적용됩니다. 가시적 핸들 Figure 또는 좌표축이 없는 경우 gcfgca를 호출하면 이러한 Figure나 좌표축이 생성됩니다.

숨겨진 핸들 객체 액세스하기

루트 ShowHiddenHandles 속성은 핸들 가시성 제어를 활성화 및 비활성화합니다. 기본적으로, ShowHiddenHandles'off'로 설정되어 있습니다. 즉, MATLAB은 각 객체의 HandleVisibility 속성 설정을 따릅니다.

ShowHiddenHandleson으로 설정하는 것은 그래픽스 계층 구조의 모든 객체에 대한 HandleVisibility 속성을 on으로 설정하는 것과 동일합니다.

참고

좌표축 제목과 축 레이블 text 객체는 좌표축의 자식이 아닙니다. 이러한 객체의 핸들에 액세스하려면 좌표축의 Title, XLabel, YLabel, ZLabel 속성을 사용하십시오.

close 함수를 hidden 옵션과 함께 사용하면 숨겨진 핸들 Figure에도 액세스할 수 있습니다. 예를 들면 다음과 같습니다.

close('hidden') 

화면에서 맨 위에 배치된 Figure를 닫습니다. 이는 해당 핸들이 숨겨진 경우에도 해당됩니다.

all 옵션과 hidden 옵션을 함께 사용하는 경우 다음은

close('all','hidden')

모든 Figure를 닫습니다.

핸들 유효성 및 핸들 가시성 비교

모든 핸들은 해당 HandleVisibility 속성의 상태에 상관없이 유효하게 유지됩니다. 객체 핸들을 변수에 할당한 경우, 항상 해당 핸들 변수를 사용하여 속성을 설정하고 가져올 수 있습니다.