GMT

사용자 심볼 만들기 1

작성자
heukchoo
작성일
2021-01-17 20:17
조회
356
 

GMT에서는 기본 제공하는 심볼 외에 사용자가 직접 원하는 심볼을 만들어서 사용할 수 있다.

 
GMT 심볼파일 확장자는 '*.def' 이다.
심볼파일의 위치는 GMT를 실행하는 현재 디렉토리나 GMT설치 디렉토리의 내에 다음 경로에 위치하면 된다.

예) C:\programs\gmt5\share\custom

단, 위의 경로에는 GMT의 기본 심볼 데이터도 있으므로 이름이 중복되어 파일이 덮어쓰지 않도록 주의한다.

 




심볼파일(*.def) 작성 방법 - 객체 그리기


 심볼을 구성하는 기본 도형(객체)은 크게 선, 다각형, 원의 세가지로 구성된다.

선은 직선, 곡선, 폐합되지 않은 선(여러 점으로 구성된)으로 구분된다.
다각형은 3점 이상으로 구성된 폐합된 선으로 볼 수 있다.
즉, 다각형도 선과 같으므로, def 포맷은 직선과 곡선(원의 호) 그리고 원의 객체를 그리는 방법을 제시한다.

 
def 파일 작성방법은 GMT에서 제시하는 volcano 심볼 예시를 이용해 설명한다.(gmt5 버전 기준)

 




 
-0.5   -0.5   M
-0.2   0    D
-0.1   0.173205081   0.4   240   300   A
0.3   -0.5   D
-0.5   -0.5   D
-0.05   0.15   0.2   c
0.15   0.3   0.15   c
0.325   0.4   0.1   c
0.45   0.45   0.05   c
 

각 줄의 마지막에 표기된 영문자는 어떤 도형인지를 나타낸다.

c(소문자)는 원을 뜻하며 앞의 3개 인자들은 다음과 같다.
'원 중심 x좌표'   '원 중심 y좌표'   '반지름'

 
M은 선의 시작점을 나타내며 앞의 2개 인자들은 시작점의 위치(x,y) 이다.

D는 점과 점사이를 직선으로 잇는다. 앞의 2개 인자들은 이을 점의 위치(x,y) 이다.

D는 Way point와 같이 계속 나열해서 사용할 수 있으며, 마지막을 위치를 시작점(M)과 맞추면 폐합된 다각형이 된다.
(사실 폐합하지 않아도 폐합된 다각형으로 다룬다. -G 옵션을 써보면 알 수 있다.)

 
A는 곡선(정확히는 원호)를 나타낸다. 사용법이 조금 어렵다.
특정 위치와 반지름을 가지는 원이 있을때 지정된 두 개의 각 사이에 해당되는 원의 호를 말한다.(피자를 잘랐을때 도우 테두리를 말한다.)

앞의 5개 인자들은 다음과 같다.
'원 중심 x좌표'   '원 중심 y좌표'   '반지름'   '시작 각'   '종료 각'

A는 D와 마찬가지로 개별의 곡선(원호)을 그릴 수 도 있고 volcano 예제와 같이 선이나 다각형의 부분으로그릴 수도 있다.

 
c로 그려지는 원들은 각각이 개별 객체가 된다.

M과 D, A로 그려지는 선 또는 다각형은 다음 M이 나오기 전까지가 하나의 객체이다.
즉 여러개의 선 또는 다각형을 그리려면 M으로 시작점을 지정해 주어야 한다.

 
def 포맷으로 객체를 그릴때 사용한 좌표의 원점(0,0)은 psxy에서 심볼의 위치에 대응 된다.
즉, psxy로 심볼을 그릴때 전달 받은 위치값에 심볼을 정확히 위치시키려면 def 포맷으로 객체를 그릴때 심볼의 정 가운데가 원점이 되도록 해야한다.
(위 volcano 그림의 좌표 원점을 확인)

 




심볼파일(*.def) 작성 방법 - 객체 꾸미기

 
def 포맷으로 작성된 각 객체의 선 형태와(굵기,색, 모양) 다각형의 채움(색, 패턴)은 별도로 지정하지 않으면 psxy 명령을 사용할 때 -G와 -W 옵션에 따라 결정된다.
이경우 각 객체는 동일한 스타일로 그려지게 된다.
만일 각 객체를 다른 스타일로 그리고자 한다면 def 파일에 각 각체별 스타일을 지정해 주어야 한다.


앞에서 원(c)은 개별 객체라고 했다.
원의 스타일을 지정하려면 c 뒤에 -G와 -W옵션을 사용해 주면 된다.

선 또는 다각형의 경우도 마찬가지다.
시작점인 M의 뒤에 스타일을 지정하면 된다.
스타일을 지정하지 않은 객체의 경우 psxy 명령을 사용할 때 지정된 스타일을 따르게 된다.

def 파일에서 먼저 작성된 객체가 먼저 그려지게 된다.
-G 옵션으로 도형을 채울경우 먼저 그린 객체를 다음에 그린 객체가 덮어서 그리므로 큰 객체가 작은 객체를 덮어서 가리지 않도록 객체 순서를 조정해야 한다.

 
다음은 스타일 지정 사용예시 이다.(테스트.def)
-1.5   -1.5   M   -Ggreen
1.5   -1.5   D
1.5   1.5   D
-1.5   1.5   D
-1.5   -1.5   D
0   0   2   c   -Gred   -W1p,blue
 

echo 0 0 | psxy -JX4c -R-2/2/-2/2 -Ba1g1 -Sk테스트/1c > 테스트.ps




 

 

 

 
전체 0