1) 캔버스 설정, 축, 모눈
Mathit에서 그림을 그릴 때 가장 먼저 할 일은 바탕이 되는 캔버스를 잡고 좌표축과 모눈을 그리는 것입니다.
이번 문서에서는 화면 범위와 카메라를 설정하는 @config 지시어부터 축(axis:), 눈금(ticks:), 모눈종이(grid:) 설정법까지 알아보겠습니다.
1. 캔버스와 카메라 전역 설정
@ 기호로 시작하는 설정 지시어는 그림 전체의 보여주기 범위, 3D 카메라, 출력 크기를 지정합니다.
1-1. 2D 화면 범위 설정
화면에 보여줄 $x$축과 축의 좌표 범위를 지정합니다.
// x축 범위 [-5, 5], y축 범위 [-3, 7]
@view: [-5, 5], [-3, 7]
1-2. 3D 카메라 시점 설정
3D 공간의 입체 도형을 바라보는 카메라의 각도와 투영 방식을 설정합니다.
// 고도(elev) 30도, 방위각(azim) 45도, 거리 10, 사선 투영(oblique)
@3d: cam(elev=30deg, azim=45deg, dist=10, proj=oblique)
proj 투영 옵션으로는oblique(사선 투영), iso(등메트릭 투영), persp(원근감이 들어간 원근 투영)을 지원합니다.
1-3. 캔버스 치수와 해상도
출력물(이미지나 인쇄물)의 실제 크기와 DPI를 지정합니다.
@canvas: width=120mm, height=90mm, dpi=300
2. 좌표축 그리기
화면에 $x$축, $y$축, 원점 표시를 손쉽게 배치할 수 있습니다.
2-1. 기본 축과 라벨 지정
axis: 지시어를 사용하면 화살표가 달린 축과 원점 $O$가 자동으로 그려집니다.
// 1. 기본 x축, y축 및 원점 O
axis: x, y, O
// 2. 축 범위 및 커스텀 라벨 지정
axis: x[-2..10, label="$t$(s)"], y[-5..15, label="$v$(m/s)"], O=(0,0)
2-2. 물결선 축 줄임표
수학 문제집에서 긴 좌표 범위를 생략할 때 쓰는 지그재그 물결선 표시도 한 줄로 작성할 수 있습니다. (TikZ에서는 라이브러리까지 끌고 와야 하는 것으로 기억)
// x축의 3부터 6 사이 구간을 물결선으로 생략 표시
axis_break: x in 3..6, style=zigzag
3. 눈금과 수식 표시
축 위에 좌표 숫자나 $pi$, $e$ 같은 수학 기호 눈금을 표시할 때 사용합니다.
// x축에 -pi, 0, pi, 2pi 눈금 표시
ticks: x[-pi="$- \pi $", 0="0", pi="$\pi$", 2*pi="$2\pi$"]
// y축에 숫자 및 무리수 e 표시
ticks: y[1="1", 2="2", e="$e$"]
4. 모눈종이와 격자점
도형을 그리거나 위치를 쉽게 파악할 수 있도록 배경에 모눈종이를 깔아줍니다.
4-1. 직교 좌표 모눈
가장 기본적인 모눈종이입니다.
grid: cartesian, step=1, stroke=#gray/30, dash
4-2. 극좌표 모눈
동심원과 방사선으로 이루어진 극좌표용 모눈입니다.
grid: polar, r_step=1, theta_step=30deg
4-3. 도트 격자
점 격자 스타일입니다.
grid: dots, step=10mm, radius=1.5pt, color=#black/60
5. 종합적으로
@view: [-3, 5], [-2, 4]
@canvas: width=100mm, height=80mm
grid: dots, step=10mm, color=#gray/50
axis: x[-2..4, label="$x$"], y[-1..3, label="$y$"], O=(0,0)
ticks: x[-1="-1", 1="1", 2="2", 3="3"]
ticks: y[1="1", 2="2"]
위 코드를 작성할 수 있게 됩니다.
다음 문서에서는 점, 선, 다각형, 원 등 본격적인 기본 도형 그리기 명령어를 배워보겠습니다.