특수 객체 식별자
특수 객체에 대한 핸들 가져오기
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'
gcf
와 gca
가 현재 Figure 및 axes 핸들을 간단히 가져올 수 있는 방법을 제공하기는 하지만 코드 파일에서는 그다지 유용하지 않습니다. 특히, 코드가 MATLAB을 기반으로 하는 애플리케이션의 일부여서 예측할 수 없는 사용자 동작에 의해 이러한 값이 변경될 수 있는 경우에는 더욱 그렇습니다.
사용자가 보호하고자 하는 그래픽스 객체의 핸들에 액세스를 방지하는 방법에 대한 자세한 내용은 Figure와 좌표축에 대한 액세스 방지하기 항목을 참조하십시오.
콜백 객체 및 콜백 Figure
콜백을 정의하는 객체나, 콜백이 실행되고 있는 객체가 포함된 Figure에 대한 정보를 콜백 함수에서 필요로 하는 경우가 종종 있습니다. 이러한 객체를 가져오려면 다음과 같은 편의 함수를 사용하십시오.
gcbo
— 루트CallbackObject
속성의 값을 반환합니다. 이 속성에는 콜백이 실행되고 있는 객체의 핸들이 포함됩니다.gcbo
는 콜백 객체를 포함하는 Figure의 핸들을 선택적으로 반환합니다.gcbf
— 콜백 객체를 포함하는 Figure의 핸들을 반환합니다.
MATLAB은 CallbackObject
속성의 값을 현재 실행 중인 콜백과 동기화된 상태로 유지합니다. 특정 콜백이 실행 중인 콜백을 중단하는 경우 MATLAB은 CallbackObject
속성의 값을 업데이트합니다.
CreateFcn
및 DeleteFcn
에 대한 콜백 함수를 작성할 때는 항상 gcbo
를 사용하여 콜백 객체를 참조합니다.
콜백 함수를 작성하는 방법에 대한 자세한 내용은 그래픽스 객체에 대한 콜백 만들기 항목을 참조하십시오.