이 글에서는 아래의 문제에 대한 해결 방법을 단계별로 알아보겠습니다.
문제 정의
포물선 방정식의 표준형은 y = ax2 + bx + c 입니다. 계수 a, b, c의 값을 입력받아 포물선의 꼭짓점(vertex)과 초점(focus)의 좌표, 그리고 준선(directrix)의 방정식을 구하는 것이 우리의 과제입니다.

주요 개념
꼭짓점(Vertex)은 포물선이 가장 급격하게 방향을 바꾸는, 즉 곡률이 가장 큰 지점의 좌표를 의미합니다. 대칭축이 이 점을 지나며, 포물선 전체의 형태를 결정하는 핵심 기준점입니다.
초점(Focus)은 포물선을 정의하는 데 사용되는 고정점입니다. 포물선 위의 모든 점은 초점까지의 거리와 준선까지의 거리가 서로 같다는 성질을 가집니다.
준선(Directrix)은 곡선이나 곡면을 기술하는 데 사용되는 고정 직선으로, 초점과 함께 포물선의 위치와 모양을 결정합니다.
그럼 실제 구현 코드를 살펴보겠습니다.
예제 코드
def findparabola(a, b, c):
print ("Vertex: (" , (-b / (2 * a)) ,
", ",(((4 * a * c) - (b * b)) / (4 * a)) , ")" )
print ("Focus: (" , (-b / (2 * a)) , ", ", (((4 * a * c) -(b * b) + 1) / (4 * a)) , ")" )
print ("Directrix: y=", (int)(c - ((b * b) + 1) * 4 * a ))
# main()
a = 7
b = 5
c = 3
findparabola(a, b, c)
실행 결과
Vertex: ( -0.35714285714285715 , 2.107142857142857 ) Focus: ( -0.35714285714285715 , 2.142857142857143 ) Directrix: y= -725
위 코드에서 모든 변수와 함수는 아래 그림과 같이 전역 범위(global scope)에 선언되어 있어, 프로그램 어디에서든 접근할 수 있습니다.

계산 공식 정리
포물선 y = ax2 + bx + c가 주어졌을 때, 각 요소는 다음 공식으로 계산됩니다.
- 꼭짓점: x = -b / (2a), y = (4ac − b2) / (4a)
- 초점: x = -b / (2a), y = (4ac − b2 + 1) / (4a)
- 준선: y = c − (b2 + 1) × 4a
꼭짓점과 초점의 x좌표는 항상 동일하며, 이는 포물선의 대칭축이 수직이라는 사실을 반영합니다. 초점의 y좌표는 꼭짓점보다 항상 1/(4a)만큼 위에 위치한다는 점도 눈여겨볼 만합니다.
결론
이 글에서는 Python을 활용해 포물선의 꼭짓점, 초점, 그리고 준선을 구하는 방법을 살펴보았습니다. 표준형 방정식 y = ax2 + bx + c의 세 계수만 알고 있다면, 간단한 함수 하나로 포물선의 핵심 특징들을 손쉽게 계산할 수 있습니다. 이러한 원리는 그래프 시각화, 물리 시뮬레이션, 최적화 문제 등 다양한 분야에서 응용될 수 있습니다.