뷰포트(Viewport)란 무엇인가?
Object Graphics에서 원하는 그래픽을 구현하는데 있어서 첫번째 단계는, 그래픽 객체들이 구현될 바탕이 되는 영역을 설정하는 것이다. Direct Graphics에서는 이러한 영역이 기본적으로 2차원이었다면, Object Graphics에서는 무조건 3차원 공간이 된다. 하나의 큐브(Cube)라고 생각하면 편할 것이다. 이 큐브를 바로 뷰포트(Viewport)라고 하며, 이 뷰포트의 위치와 크기를 가장 먼저 결정해주어야 한다. 이러한 작업은 뷰 객체를 생성할 때 Location 및 Dimension이라는 키워드를 사용하여 이루어진다. 물론 이 키워드는 바로 뷰 객체의 속성(Property)에 해당됨은 당연한 사실이다. 다음 예제를 한번 살펴보자.
myView = OBJ_NEW(‘IDLgrView’, LOCATION=[100, 100], DIMENSIONS=[300, 200])
일단 뷰 객체를 생성하기 위한 문구라는 것은 금방 알 수 있을 것이다. 여기서는 가로 및 세로 방향으로 300 및 200의 크기를 갖고, 왼쪽 최하단의 원점이 (100, 100)이라는 좌표값으로 설정된 직사각형 형태의 뷰 객체를 만들었다. 물론 이것은 뷰포트를 2차원으로 투영하여 볼 때의 얘기이다. 관찰자의 시선에 해당되는 Z방향과 관련된 내용은 다음 게시물에서 소개될 예정이다. 참고로, 이 좌표값들의 단위는 기본적으로는 화소(Pixel)가 된다.
myView -> SetProperty, LOCATION=[0, 0], DIMENSIONS=[200, 200]
이와 같이 이미 생성된 뷰 객체의 속성을 SetProperty 메서드를 사용하여 나중에 변경할 수도 있다. 여기서는 가로 및 세로 방향으로 200 및 200의 크기를 갖고, 원점의 좌표가 (0, 0)이 되도록 뷰 객체의 속성이 변경되었다.
위의 그림을 통하여 이러한 개념을 도식적으로 이해해보도록 하자. 이 그림은 위에서 myView라는 뷰 객체를 처음 생성할 때 뷰포트의 위치를 나타낸다. 이러한 뷰 객체는 그래픽 디바이스에 해당되는 객체상에 구현된다. 이는 윈도우, Z-buffer, 프린터 등에 해당되는 객체임을 이미 설명한 바 있다. 어떻게 위치가 정의되는가를 유념하도록 하자. 그리고 다음 그림은 앞서 SetProperty 메서드를 사용하여 관련 속성들을 변경한 상태이다.
이 두 그림의 비교를 통하여 그래픽 디바이스 객체상에서 뷰 객체의 위치 개념을 도식적으로 이해할 수 있을 것이다. 잘 이해해두도록 하자.
'IDL > Object Graphics' 카테고리의 다른 글
Object Graphics in IDL [18] (0) | 2010.12.31 |
---|---|
Object Graphics in IDL [17] (0) | 2010.12.27 |
Object Graphics in IDL [15] (0) | 2010.12.10 |
Object Graphics in IDL [14] (0) | 2010.12.06 |
Object Graphics in IDL [13] (0) | 2010.12.01 |