포물선(parabola)은 y = ax² + bx + c 형태의 이차방정식으로 표현할 수 있으며, 이때 꼭짓점(vertex), 초점(focus), 준선(directrix)은 포물선의 모양과 위치를 결정하는 핵심 요소입니다. 다음은 Java 프로그램을 사용해 포물선의 꼭짓점, 초점 및 준선을 구하는 예제입니다.
핵심 공식 정리
포물선 y = ax² + bx + c 에 대해 각 요소는 다음과 같은 공식으로 계산할 수 있습니다.
- 꼭짓점(Vertex): ( −b / (2a), (4ac − b²) / (4a) )
- 초점(Focus): ( −b / (2a), (4ac − b² + 1) / (4a) )
- 준선(Directrix): y = (4ac − b² − 1) / (4a)
예제 코드
public class Demo{
public static void find_values(float val_1, float val_2, float val_3){
System.out.println("The value of vertex is (" + (-val_2 / (2 * val_1)) + ", "+ (((4 * val_1 * val_3) - (val_2 * val_2)) / (4 * val_1)) + ")");
System.out.println("The value of focus is (" + (-val_2 / (2 * val_1)) + ", " + (((4 * val_1 * val_3) - (val_2 * val_2) + 1) / (4 * val_1)) + ")");
System.out.println("The value of directrix is " + (int)(val_3 - ((val_2 * val_2) + 1) * 4 * val_1));
}
public static void main(String[] args){
float val_1 = 6, val_2 = 2, val_3 = 9;
find_values(val_1, val_2, val_3);
}
}
실행 결과
The value of vertex is (-0.16666667, 8.833333) The value of focus is (-0.16666667, 8.875) The value of directrix is -111
코드 설명
위 코드의 Demo 클래스에는 세 개의 float 값을 매개변수로 받는 정적(static) 메서드 find_values가 정의되어 있습니다. 이 메서드 내부에서는 앞서 소개한 꼭짓점, 초점, 준선의 공식에 매개변수로 전달된 값들을 대입하여 결과를 계산합니다.
main 메서드에서는 계산에 사용할 세 값(각각 6, 2, 9)을 정의한 뒤 find_values 메서드를 호출하고, 그 결과가 화면에 출력됩니다. 즉, 이차항 계수 a, 일차항 계수 b, 상수항 c에 해당하는 값만 바꿔 주면 어떤 포물선이든 동일한 방식으로 꼭짓점, 초점, 준선을 손쉽게 구할 수 있습니다.