Main Content

특수 객체 식별자

특수 객체에 대한 핸들 가져오기

MATLAB®은 중요한 객체 핸들이 필요할 때마다 가져올 수 있도록 이러한 핸들을 반환하는 함수를 제공합니다.

이러한 객체에는 다음이 포함됩니다.

  • 현재 Figure — 그래픽스 명령의 현재 대상인 Figure의 핸들입니다.

  • 현재 좌표축 — 그래픽스 명령의 대상인 현재 Figure에 포함된 좌표축의 핸들입니다.

  • 현재 객체 — 선택된 객체의 핸들입니다.

  • 콜백 객체 — 콜백이 실행되고 있는 객체의 핸들입니다.

  • 콜백 Figure — 콜백 객체의 부모인 Figure의 핸들입니다.

현재 Figure, 좌표축 및 객체

MATLAB 그래픽스에서 중요한 개념은 현재 객체가 된다는 것입니다. 현재 객체가 된다는 것은 어떤 유형의 객체에 영향을 미치는 임의의 동작에 대해 해당 객체가 그 대상이 됨을 의미합니다. 특정 시점에 현재로 지정되는 객체에는 다음 세 가지가 있습니다.

  • 현재 Figure는 그래픽스 출력을 받도록 지정된 창입니다.

  • 현재 좌표축은 플로팅 함수가 그래프를 표시하는 좌표축입니다.

  • 현재 객체는 가장 최근에 생성되거나 선택된 객체입니다.

MATLAB은 이러한 객체에 대응되는 세 개의 핸들을 선조의 대응 속성에 저장합니다.

다음 속성을 사용하여 다음과 같은 주요 객체의 핸들을 가져올 수 있습니다.

hRoot = groot;
hFigure = hRoot.CurrentFigure;
hAxes = hFigure.CurrentAxes;
hobj = hFigure.CurrentObject;

편의 함수

다음 명령은 속성 쿼리에 사용할 수 있는 축약 표기법입니다.

  • gcf — 루트 CurrentFigure 속성의 값을 반환하거나 현재 Figure가 없을 경우 Figure를 생성합니다. HandleVisibility 속성이 off로 설정된 Figure는 현재 Figure가 될 수 없습니다.

  • gca — 현재 Figure의 CurrentAxes 속성값을 반환하거나 현재 좌표축이 없을 경우 좌표축을 생성합니다. HandleVisibility 속성이 off로 설정된 좌표축은 현재 좌표축이 될 수 없습니다.

  • gco — 현재 Figure의 CurrentObject 속성값을 반환합니다.

다음 명령을 객체 핸들을 필요로 하는 함수에 대한 입력 인수로 사용합니다. 예를 들어, line 객체를 클릭한 후 gco를 사용하여 set 명령에 대한 핸들을 지정할 수 있습니다.

set(gco,'Marker','square')

또는 axes 객체를 클릭하여 axes 속성을 설정할 수 있습니다.

set(gca,'Color','black')

현재 좌표축에 포함된 모든 그래픽 객체의 핸들을 가져올 수 있습니다(숨겨진 핸들은 예외임).

h = get(gca,'Children');

그런 다음 객체 유형을 확인할 수 있습니다.

get(h,'Type')
ans = 
      'text'
      'patch'
      'surface'
      'line'

gcfgca가 현재 Figure 및 axes 핸들을 간단히 가져올 수 있는 방법을 제공하기는 하지만 코드 파일에서는 그다지 유용하지 않습니다. 특히, 코드가 MATLAB을 기반으로 하는 애플리케이션의 일부여서 예측할 수 없는 사용자 동작에 의해 이러한 값이 변경될 수 있는 경우에는 더욱 그렇습니다.

사용자가 보호하고자 하는 그래픽스 객체의 핸들에 액세스를 방지하는 방법에 대한 자세한 내용은 Figure와 좌표축에 대한 액세스 방지하기 항목을 참조하십시오.

콜백 객체 및 콜백 Figure

콜백을 정의하는 객체나, 콜백이 실행되고 있는 객체가 포함된 Figure에 대한 정보를 콜백 함수에서 필요로 하는 경우가 종종 있습니다. 이러한 객체를 가져오려면 다음과 같은 편의 함수를 사용하십시오.

  • gcbo — 루트 CallbackObject 속성의 값을 반환합니다. 이 속성에는 콜백이 실행되고 있는 객체의 핸들이 포함됩니다. gcbo는 콜백 객체를 포함하는 Figure의 핸들을 선택적으로 반환합니다.

  • gcbf — 콜백 객체를 포함하는 Figure의 핸들을 반환합니다.

MATLAB은 CallbackObject 속성의 값을 현재 실행 중인 콜백과 동기화된 상태로 유지합니다. 특정 콜백이 실행 중인 콜백을 중단하는 경우 MATLAB은 CallbackObject 속성의 값을 업데이트합니다.

CreateFcnDeleteFcn에 대한 콜백 함수를 작성할 때는 항상 gcbo를 사용하여 콜백 객체를 참조합니다.

콜백 함수를 작성하는 방법에 대한 자세한 내용은 그래픽스 객체에 대한 콜백 만들기 항목을 참조하십시오.