포물선을 원근법으로 바라보면, 타원이 된다

0

3D 객체를 2D 평면에 투영하는 것은 흔히 기하 방정식을 원근 시점으로 변환하는 과정을 포함한다. 여기 흥미로운 관찰이 있다. xz-평면에 그려진 포물선 곡선을 xy-평면에서 원근 투영으로 바라보면, 그 곡선이 타원처럼 보일 수 있다. 아래 애니메이션은 투영의 변화에 따라 포물선 곡선과 타원 사이의 전환을 보여준다. 어떻게 이런 일이 일어나는지 살펴보자. 이 글은 포물선 방정식이 원근 투영에서 어떻게 표현되고 변환되는지를, 특히 이 변환의 유도에 초점을 맞추어 본다.

문제 정의

xz-평면에 그려진 포물선 곡선을 상상해 보자. 이는 다음과 같이 정의된다.

\[\begin{align} z &= a x^2 + b x + c,\\\nonumber y &= d, \end{align}\]

여기서 \(a, b, c, d\)는 상수이고, \(x, y, z\)는 직교 좌표를 나타낸다. 원근 변환이 적용되면, 3D 좌표는 다음 식들을 이용해 2D 평면에 투영된다.

\[\begin{align} u &= x/z, \\ v &= y/z, \nonumber \end{align}\]

여기서 \(u\)와 \(v\)는 2D 평면에 투영된 좌표다. 간단히 하기 위해 초점 거리와 주점(principal point)은 각각 \(1\)과 \(0\)으로 가정한다.

문제 풀이

포물선 방정식을 원근 투영 공식에 대입하면, 식을 다음과 같이 다시 쓸 수 있다:

\[\begin{align} u &= \frac{x}{a x^2 + b x + c}, \\ v &= \frac{d}{a x^2 + b x + c}. \nonumber \end{align}\]

변수 \(x\)를 소거하기 위해 식들을 정리하면 다음을 얻는다.

\[a u^2 + \frac{b}{d} u v + \frac{c}{d^2} v^2 = \frac{a x^2 + b x + c}{(a x^2 + b x + c)^2} = \frac{1}{a x^2 + b x + c} = \frac{1}{d} v\]

그리고

\[a u^2 + \frac{b}{d} u + \frac{c}{d^2} v^2 - \frac{1}{d} v = 0\]

이것이 \(u\)와 \(v\)를 관계 짓는 원근 변환된 방정식이다. 원래의 이차 방정식은 xz-평면에서의 포물선이었지만, 원근 투영은 원점을 지나는 원뿔 곡선(원, 타원, 쌍곡선 포함) 방정식을 만들어낸다.

특수한 경우

\(a = 1, b = 0, c = 1\), \(d = 1\)일 때, 포물선 방정식은 \(y=1\) 평면에서 다음과 같다:

\[z = x^2 + 1\]

이 포물선을 원근 투영으로 바라보면 원처럼 보인다.

\[\begin{align} u^2 + v^2 - v &= 0, \\\nonumber u^2 + (v-\frac{1}{2})^2 &= \frac{1}{4} \end{align}\]

서두의 애니메이션은 위 포물선과 원 사이의 전환을 보여준다.