3차원 공간상에서의 즉각적인 변환 (Interactive 3D Transformation)
Object Graphics로 구현된 결과물이 실제 사용자에게 좀 더 구체적이고 직관적으로 다가가기 위해서는, 사용자가 직접 그 그래픽 객체를 마우스로 움직이거나 돌려보고 확대/축소도 해볼 수 있다면 더 좋을 것이다. 이와 같은 기능을 가능하게 해주는 객체가 바로 트랙볼 객체로서, ‘TrackBall’이라는 이름의 클래스로 정의되어 있다. 이를 활용하면 마우스의 움직임과 관련된 이벤트로부터 필요한 정보를 추출하여 이를 모델 객체의 변환행렬에 반영하는 방식으로 그래픽을 구현할 수 있다. 다만 이와 같은 기능성을 갖기 위해서는 GUI의 형태의 어플리케이션으로 만들어져야 하므로, IDL에서 GUI를 만들 수 있는 프로그래밍 기법을 알아야만 한다. 차후에 이와 같이 GUI와 맞물려서 이 클래스가 활용된 예제를 소개할 예정이므로, 이에 관한 자세한 설명은 일단 여기서는 생략하기로 한다. 참고로 IDL에 기본적으로 내장되어 있는 XOBJVIEW라는 프로시저를 활용하면 이 트랙볼 기능을 비교적 쉽고 빠르게 체험해볼 수 있다. 다음 예제에서는 임의의 면(Surface) 객체를 생성하여 이를 XOBJVIEW의 인자로 사용하고 있다.
oSurf = OBJ_NEW(‘IDLgrSurface’, DIST(100))
XOBJVIEW, oSurf
그러면 앞의 그림과 같이 간단한 GUI가 뜨고 이 면 객체가 3차원 공간상에 구현된 모습을 볼 수 있다. 이 때 별도로 윈도우, 뷰, 모델 객체들을 만들어주지 않고도 바로 하위 그래픽 객체의 모습을 볼 수 있다. 물론 마우스 드래그에 의한 이동, 확대/축소, 회전 등의 조작이 가능하니 한번쯤 시도해보길 권한다. 그리고 XOBJVIEW 프로시저에 관한 좀 더 자세한 내용은 IDL 도움말을 참조하길 바란다. 향후에도 여러 종류의 하위 그래픽 객체들에 관한 내용을 다룰 때, 구현된 그래픽 객체의 모습을 즉각적으로 손쉽게 보고자 할 때 이 프로시저를 자주 사용하게 될 것이므로, 잘 기억해두면 도움이 많이 될 것이다.
이제 '객체의 변환'이라는 주제에 대한 내용은 여기서 마치기로 한다. 다음 시간부터는 Object Graphics의 체계하에서 컬러를 다루는 방법에 대하여 알아보기로 하겠다.
'IDL > Object Graphics' 카테고리의 다른 글
Object Graphics in IDL [25] (0) | 2011.02.14 |
---|---|
IDL 8.0에서 새로 도입된 Object 관련 문법 (0) | 2011.02.07 |
Object Graphics in IDL [23] (0) | 2011.01.31 |
Object Graphics in IDL [22] (0) | 2011.01.24 |
Object Graphics in IDL [21] (0) | 2011.01.18 |