원래 IDL에서 DG 체계의 그래픽 표출을 하는 경우, 먼저 WINDOW 프로시저를 사용하여 원하는 크기의 그래픽창을 띄운 다음 각종 그림들을 그리는 방법이 많이 권장됩니다. 그래야 그래픽창의 크기에 관한 제어와 같은 추가 설정이 가능하기 때문입니다. 그런데 Mac OS용 IDL에서 이러한 작업을 할 경우, 가급적이면 WINDOW 프로시저를 사용할 때 RETAIN=2 설정을 해두는 것을 권장합니다. 예를 들어, 다음과 같이 DG 기반으로 이미지 표출 작업을 수행하는 프로그램이 있다고 합시다.
img = HANNING(600, 600)
WINDOW, 0, XSIZE=600, YSIZE=600
DEVICE, DECOMPOSED=0
LOADCT, 5
TVSCL, img
여기서 사용된 WINDOW 프로시저의 내용은 위와 같이 사용하기 보다는 가급적 다음과 같은 방식으로 사용하는 것이 좋습니다.
WINDOW, 0, XSIZE=600, YSIZE=600, RETAIN=2
이와 같이 RETAIN=2 설정을 하지 않았을 경우 발생 가능한 문제들이 몇 개 있는데요. 먼저 TV나 TVSCL 프로시저를 사용하여 이미지 데이터를 표출할 경우 속도가 느려지는 현상이 가끔 발생할 수 있습니다. 그리고 그림 파일로의 저장을 위하여 그래픽창의 내용을 TVRD 함수로 캡쳐할 경우 캡쳐 결과가 정상적으로 얻어지지 않는 문제가 있습니다. 이것은 저도 사실 자세히는 모르지만, 아마도 Mac OS 자체의 특성과 IDL 사이의 궁합과 관련된 문제가 아닐까 추측됩니다. 하여간 이와 같은 문제들은 WINDOW 프로시저를 사용할 때 RETAIN=2 속성을 추가적으로 설정해주면 모두 해결됩니다.
DG 체계가 NG 체계의 등장 이후 그 존재감이 다소 줄어든 감이 없진 않지만, 여전히 많은 IDL 유저들에게 익숙한 방법론이기도 합니다. Mac OS에서 IDL을 사용하면서 DG 체계 기반으로 그래픽 표출 작업을 하는 유저들이라면 오늘 언급한 이 내용 꼭 기억해 두기시 바랍니다.
'IDL > Direct Graphics' 카테고리의 다른 글
DG 체계에서 Colorbar 사용 방법 (0) | 2017.05.19 |
---|---|
DG 체계에서 Z-buffer 사용 방법 (업데이트 버전) (0) | 2016.09.02 |
DG 체계에서 등위선(contour)과 이미지(image)의 중첩 (0) | 2016.04.04 |
DG 체계에서 각종 특수기호들을 사용하는 방법 (0) | 2014.05.25 |
애니메이션 GIF 제작 예제 (0) | 2013.06.12 |