IDL에서 그림을 표출하는데 있어서는 그래픽 창을 띄우는 것은 필수입니다. 그래픽 창이 떠야 그 위에 그림을 표출할 수 있다는 것은 뭐 당연한 얘기일 것입니다. 일단 NG(New Graphics) 체계를 기준으로 얘기하면 여기서는 그래픽 창을 띄울 때 WINDOW 함수를 사용하게 됩니다. 그런데 만약 다수의 그래픽 창들을 연속하여 띄울 경우에는 마치 순차적으로 약간씩 어긋나게 차곡차곡 쌓이는듯한 느낌으로 생성됩니다. 간단한 테스트를 위하여 다음과 같이 IDL의 커맨드 창에서 다수의 그래픽 창들을 연속적으로 띄우도록 하면 이 그래픽 창들은 화면상에서 대략 다음과 같은 모습으로 뜰 것입니다.
IDL> w1 = WINDOW(DIMENSIONS=[600, 500], /NO_TOOLBAR)
IDL> w2 = WINDOW(DIMENSIONS=[600, 500], /NO_TOOLBAR)
IDL> w3 = WINDOW(DIMENSIONS=[600, 500], /NO_TOOLBAR)
IDL> w4 = WINDOW(DIMENSIONS=[600, 500], /NO_TOOLBAR)
그런데 경우에 따라서는 그래픽 창이 뜨는 위치를 유저가 직접 지정하는 것이 필요할 수도 있습니다. 이를 위해서는WINDOW 함수의 경우는 LOCATION 키워드를 함께 사용하면 됩니다. 이 키워드는 명칭 그대로 그래픽 창이 뜰 위치를 명시하는 역할을 하는데, 그 위치에 대한 가로 및 세로 방향 좌표값을 픽셀 단위로 주면 됩니다. 예를 들어 [200, 200]이라는 위치에 그래픽 창이 뜨도록 하고 싶다면 다음과 같이 처리하면 됩니다.
IDL> w = WINDOW(DIMENSIONS=[600, 500], LOCATION=[200, 200], /NO_TOOLBAR)
이렇게 하면 화면상에서 그래픽 창이 다음과 같이 특정한 위치에 뜰 것입니다. 물론 이 위치는 LOCATION 키워드에 명시된 좌표가 반영된 것입니다.
여기서 유의해야 할 것은 바로 좌표의 기준 위치입니다. 위의 스크린샷을 보면 짐작이 가능한데 여기서는 스크린의 좌측 상단 꼭지점이 기준점이며 그 좌표가 [0, 0]이 됩니다. 그리고 그래픽 창의 위치 좌표가 [200, 200]이라는 것은 그래픽 창의 좌측 상단 꼭지점의 위치 좌표가 스크린 상에서 [200, 200]이라는 뜻입니다. 따라서 전체 스크린에서 보면 그래픽 창의 위치는 다음과 같은 방식으로 지정된다고 이해하면 됩니다. 즉 스크린의 좌측 상단 꼭지점을 기준으로 하여 그래픽 창의 좌측 상단 꼭지점의 위치가 지정되는 방식이라고 보면 됩니다.
그러면 DG(Direct Graphics) 체계에서는 어떨까요? 먼저 다음과 같이 DG 체계에서 WINDOW 프로시저를 사용하여 별다른 위치 설정을 하지 않고 그냥 그래픽 창들을 여러 개 연속적으로 띄워봅시다.
IDL> WINDOW, 0, XSIZE=600, YSIZE=500
IDL> WINDOW, 1, XSIZE=600, YSIZE=500
IDL> WINDOW, 2, XSIZE=600, YSIZE=500
IDL> WINDOW, 3, XSIZE=600, YSIZE=500
그러면 이 그래픽 창들은 화면상에서 다음과 같이 위치할 것입니다. NG 체계의 경우와는 좀 다릅니다.
이와 같이 DG 체계에서 WINDOW 프로시저를 사용하여 그래픽 창들을 연달아 띄울 때 이러한 모습이 되는 이유에 대해서는 IDL 도움말에서 WINDOW 프로시저에 관한 내용을 보면 설명이 되어있긴 합니다만, 이제 여기서는 그래픽 창의 위치를 유저가 직접 지정하는 방법을 살펴보는 것이 더 중요할 것 같습니다. DG 체계에서 그래픽 창의 위치를 유저가 직접 지정하는 것은 NG 체계의 경우와 거의 비슷한 원리로 가능합니다. 이를 위해서는 WINDOW 프로시저에서 XPOS 및 YPOS 키워드를 함께 사용하여 위치 좌표를 지정하면 됩니다. 앞서 NG 체계의 예와 같이 [200, 200]이라는 좌표의 위치에 DG 기반의 그래픽 창이 뜨도록 하려면 다음과 같이 하면 됩니다.
IDL> WINDOW, XSIZE=600, YSIZE=500, XPOS=200, YPOS=200
그러면 화면상에서 그래픽 창이 다음과 같이 뜰 것입니다. 좌표 [200, 200]이 그래픽 창의 위치에 반영되는 원리는 앞서 NG 체계에서의 경우와 동일합니다.
따라서 NG 및 DG 체계에서 그래픽 창을 띄우면서 위치를 직접 지정해주는 방식은 위와 같습니다. 다만 여기서 한가지 더 유의해야 할 부분이 있는데, 바로 OS에 따른 차이점이 존재한다는 것입니다. 위의 예제들은 모두 OS가 MS Windows인 머신에서 Windows용 IDL을 사용할 경우에 해당됩니다. 그런데 Linux, Unix 등과 같은 계열의 OS들(Mac OS도 포함)에서는 좀 다릅니다. 그래서 Mac OS의 경우를 예로 들어보면, 일단 NG 체계에서의 위치 지정의 방식은 Windows OS의 경우와 동일합니다. 실제로 Mac OS용 IDL에서 NG 체계의 WINDOW 함수를 사용하여 위치 좌표를 [200, 200]으로 지정해보면 그 결과는 다음과 같습니다.
IDL> w = WINDOW(DIMENSIONS=[600, 500], LOCATION=[200, 200], /NO_TOOLBAR)
이와 같이 Window OS에서의 결과와 동일합니다. 다만 Mac OS의 경우는 최상단의 메뉴바 부분은 제외된 상태로 좌표가 반영됩니다. 즉 다음과 같은 방식으로 위치가 매겨진다는 차이점만 유의하면 됩니다.
그런데 Mac OS에서 DG 체계의 경우를 보면 그 방식이 Windows OS에서와는 완전히 다르다는 것을 유의해야 합니다. 즉 Mac OS용 IDL에서 다음과 같이 DG 체계의 WINDOW 프로시저를 사용하여 위치 좌표를 [200, 200]으로 지정해보면 그 결과는 다음 그림과 같습니다.
IDL> WINDOW, XSIZE=600, YSIZE=500, XPOS=200, YPOS=200
이러한 결과가 나오게 되는 원인은 여기서는 위치 좌표가 반영되는 방식이 화면의 좌측 상단이 아닌 좌측 하단 꼭지점을 기준으로 하여 그래픽 창의 좌측 하단 꼭지점의 위치가 되는 방식이기 때문입니다. 즉 다음과 같은 방식으로 좌표가 설정된다는 차이가 있습니다.
이와 같이 DG 체계의 그래픽 창의 위치 좌표가 반영되는 방식은 OS가 MS Windows인 경우와 Motif 플랫폼에 해당되는 OS들(Unix 등)인 경우 사이에 이와 같은 차이점이 있다는 점만 유의하면 됩니다. Linux OS에 대해서는 제가 테스트를 직접 해보진 않았지만 아마도 앞서 Mac OS의 경우와 유사할 것으로 보입니다.
'IDL > New Graphics' 카테고리의 다른 글
IDL 9.0의 그림 저장 문제에 관하여 [2] (0) | 2024.06.25 |
---|---|
IDL 9.0의 그림 저장 문제에 관하여 [1] (0) | 2024.05.29 |
등위선(Contour) 그림의 각종 색상 설정 방법들 [2] (0) | 2024.03.25 |
등위선(Contour) 그림의 각종 색상 설정 방법들 [1] (0) | 2024.03.20 |
다수의 그림들에 대한 OVERPLOT 및 TARGET의 활용법 (0) | 2024.03.12 |