03. 세 번째 수업: 길고 납작한 타원의 수식 해체 (Ellipse Equation)
이전 2강에서 우리는 타원의 무지막지한 철칙을 알았습니다. “두 개의 초점 블랙홀 사이에서 팽팽하게 땡긴 끈의 길이는 항상 똑같다!” 이 길고 지루한 물리적 거취 제약 조건을 파이썬 $XY$ 픽셀 방정식 코드로 떡 주무르듯 요리해 봅시다.
1. 지저분한 이중 루트($\mathbf{\sqrt{ \ }}$) 껍데기의 괴물
- 두 놈의 쌍둥이 초점을 $X$축 위 양옆으로 나란히 배치합시다. 오른쪽 태양은 $F(c, 0)$, 왼쪽 블랙홀은 $F’(-c, 0)$
- 밧줄 끝의 마우스 포인터(우주선) 위치를 $P(x, y)$ 라 합시다.
- 이 밧줄의 전체 합계 길이 상수를 깔끔하게 $2a$ 라고 정의할게요. (이 $2a$ 라는 놈이 곧 타원 껍질이 벌어질 수 있는 최대의 가로 “장축(긴 반지름 축)” 전체 길이가 됩니다.)
조건식: $(P \rightarrow F \text{의 거리}) + (P \rightarrow F’ \text{의 거리}) = 2a$
이걸 피타고라스의 제곱근 루트 기호로 코딩하면 아주 역겨운 수식이 나옵니다. \(\sqrt{(x - c)^2 + y^2} + \sqrt{(x + c)^2 + y^2} = 2a\)
당연히 해커들은 루트($\sqrt{\ }$) 기호 둘이 더해져 있는 이런 버그투성이 식을 놔두지 않습니다. 양변을 루트가 다 날아갈 때까지 두 번 세 번 미친 듯이 제곱 폭발을 시킨 뒤, 거추장스러운 숫자들을 한쪽으로 예쁘게 묶어 알파벳 “$a, b$” 치환 스티커로 발라버리면 우주에서 가장 반듯하고 예쁜 타원의 기본 코드가 뚝 떨어집니다.
2. 대압축 완료본: 타원의 방정식 표준 렌더링 코드

최종 압축 모델: \(\mathbf{\frac{x^2}{a^2} + \frac{y^2}{b^2} = 1} \quad (단, \ a > b > 0)\)
자, 이건 정말 무시무시할 정도로 심플하고 기하학적인 예술입니다. 어떻게 해석할까요? (참고: 저기서 $b^2$ 은 사실 계산 중간에 $a^2 - c^2$ 라는 찌꺼기 숫자를 도저히 보기 싫어서 아주 예쁜 $b^2$ 이라는 단어스티커로 치환해 버린 것입니다. 이 $b$의 의미는 타원이 위아래로 볼록한 세로 “단축(짧은 배불뚝이 반지름)” 길이의 정보가 됩니다.)
- 가로로 긴 럭비공 (장축이 $X$축): 밑구멍 $a$가 $b$보다 클 때입니다. $X$방향으로 양옆 다리($a$)를 쩍 벌린 타원.
- 세로로 긴 타구 (장축이 $Y$축): 반대로 밑구멍 $b$가 $a$보다 클 때입니다. $Y$방향 기둥이 압도적으로 큰, 길쭉한 길쭉이 우주선 타원.
- 이 코드 안에는 태양인 타원의 초점 $c$ 값의 단서가 숨어 있습니다: 큰놈 제곱 $-$ 작은놈 제곱 $=$ $c^2$ (초점 거리의 제곱!)
3. 원($\mathbf{Circle}$) 과 타원($\mathbf{Ellipse}$) 의 소름 돋는 연결고리
만약 저 렌더링 코드 $\frac{x^2}{a^2} + \frac{y^2}{b^2} = 1$ 에서, 가로 길이 $a$ 와 세로 두께 $b$ 가 완벽하게 $1:1$ 로 똑같은 $r$ 이라는 숫자 를 대입하면 어떻게 될까요?
\(\frac{x^2}{r^2} + \frac{y^2}{r^2} = 1\) 양변에 $r^2$ 을 호쾌하게 곱해 올려줍시다.
$x^2 + y^2 = r^2$
와우! 아귀가 완벽하게 맞아떨어집니다. 다리 양옆 길이 오프셋($a, b$) 이 조금이라도 달라서 찌그러지면 두 초점을 가진 타원의 수식이 되고, 만약 가로세로 오프셋 숫자가 완전히 똑같아지면($a=b$) 양쪽으로 나뉘었던 쌍둥이 두 태양(초점 $F$) 이 정중앙 $1$개의 픽셀 $(0,0)$ 으로 스르륵 융합($c=0$) 해버리며 다시 위대한 하나의 원($Circle$) 코드로 복구 귀환해 버리는 우주의 이치입니다!
타원은 원의 업그레이드 확장팩 스킨 렌더링 스크립트일 뿐입니다. 다음 챕터에서는 타원에서 “거리의 합” 을 “거리의 차(빼기)” 로 부호 딱 하나 바꿨을 때 일어나는 우주 대분열 폭발인 ‘쌍곡선’ 을 맛보겠습니다.