객체의 위치 지정 (Positioning Objects)
이번 시간부터는 객체의 위치 지정에 관한 내용을 향후 몇 회에 걸쳐 다루도록 하겠다. 예전 초창기 게시물에서 Direct Graphics와 Object Graphics의 차이점들을 여러가지 소개를 한 바 있는데, 실제로 Object Graphics 작업을 해보기 시작하면서 첫번째로 부딪치는 난관이 바로 이 장에서 다룰 객체의 위치 지정 문제이다. 사실 계층구조와 같은 개념은 처음엔 생소하지만 그렇다고 해서 아주 머리가 아플 정도의 내용은 아닐 것이다. 하지만 이 장에서 소개할 객체의 위치, 좌표 등에 관한 문제는 조금 더 복잡하게 느껴질 것으로 생각된다. 필자 역시 이러한 내용을 처음 접할 당시, 내가 그동안 Direct Graphics의 세상에서는 참 행복하게 살았었던 것이라는 느낌이 들었다. 앞서 plot을 구현할 때 축을 따로 구현해줘야한다는 사실을 처음 알았을 때보다도 더 가혹한 현실이 기다리고 있었던 것이다. 그렇다고 해서 미리부터 너무 겁을 먹지는 말자. 어차피 내용을 좀 공부하고 나서 나중에 돌이켜보면 그렇게까지 겁먹을만한 내용은 아니었다는 생각이 들 것이다. 어쨌든 Direct Graphics에서와는 달리 이 Object Graphics의 세계에서는 구현할 그래픽 객체의 크기나 위치 등을 자동적으로 알아서 지정해주질 않는다. 우선 다음과 같은 세가지의 가장 기본적인 요소들을 먼저 고려해야 한다.
1. 뷰포트(Viewport)
이것은 말 그대로 뷰(View), 즉 시점과 관련된 것이다. 그래픽이 구현될 영역의 크기, 투영법(Projection), 관찰자의 시선 등과 같은 세부사항들이 이에 해당된다. 이들은 결국은 뷰 객체, 즉 IDLgrView 클래스 객체의 각종 속성들(Properties)이 된다. 그림을 그리기 위한 그림판이라고 생각하면 된다. 단, Direct Graphics에서는 이것이 무조건 2차원 평면이었지만, 여기서는 3차원 공간이 된다는 것이 가장 결정적인 차이점이다.
2. 위치(Location)
이것은 그래픽 영역내에서의 객체의 위치를 뜻한다. 세부적으로는 그래픽 객체를 영역내에서 이동(Translation), 회전(Rotation) 및 확대/축소(Scaling)시키는 작업들이 이에 해당된다. 단 이러한 위치조정의 대상은 개개의 하위 그래픽 객체가 아니라, 이들을 포함하는 상위 개념의 단위인 모델 객체, 즉 IDLgrModel 클래스 객체라는 점을 일단 기억해두자. 뷰포트와 위치는 서로 독립적인 개념이어서, 어떤 모델 객체의 위치를 한 방향으로 계속 이동시키다보면 뷰포트를 벗어나서 우리 눈에 안보일 수도 있다.
3. 좌표계(Coordinate Systems and Scaling)
IDL에서는 좌표계의 종류가 크게 data, device, normal 세가지로 구분된다는 사실을 기억할 것이다. 이러한 체계는 Object Graphics에서도 동일하게 적용된다. 그래서 어떤 좌표계를 사용할 것인가를 사용자가 결정한다. 단, 개별 그래픽 객체와 이를 포함하는 모델 또는 뷰 객체는 같은 좌표계를 사용하도록 해야한다는 점을 유념하도록 하자.
그러면 일단 이 정도로 워밍업을 해놓고, 다음 회부터는 위의 개념들에 대한 좀 더 세부적인 내용으로 들어가보도록 하겠다.
'IDL > Object Graphics' 카테고리의 다른 글
Object Graphics in IDL [17] (0) | 2010.12.27 |
---|---|
Object Graphics in IDL [16] (0) | 2010.12.15 |
Object Graphics in IDL [14] (0) | 2010.12.06 |
Object Graphics in IDL [13] (0) | 2010.12.01 |
Object Graphics in IDL의 연재와 관련하여... (0) | 2010.11.12 |