이 튜토리얼에서는 C++를 활용해 포물선의 꼭짓점(vertex), 초점(focus), 준선(directrix)을 구하는 방법을 알아봅니다. 포물선 방정식을 이루는 세 개의 상수 x, y, z가 주어져 있다고 가정하고 진행합니다.
일반적인 이차함수 y = ax² + bx + c에서 계수 a = x, b = y, 상수항 c = z에 해당한다고 생각하면 이해하기 쉽습니다. 꼭짓점, 초점, 준선은 복잡한 과정 없이 아래의 공식만으로 간단하게 계산할 수 있습니다.
- 꼭짓점(Vertex): (-y/2x, (4xz - y²) / 4x)
- 초점(Focus): (-y/2x, (4xz - y² + 1) / 4x)
- 준선(Directrix): z - (y² + 1) × 4x
예제 코드
그럼 위 공식을 그대로 적용한 C++ 코드를 살펴보겠습니다.
#include <iostream>
using namespace std;
void findParabolaProperties(float x, float y, float z) {
cout << "Vertex: (" << -y/(2*x) << ", " << (((4*x*z) - (y*y))/4*x) << ")" << endl;
cout << "Focus: (" << -y/(2*x) << ", " << (((4*x*z) - (y*y)+1)/4*x) << ")" << endl;
cout << "Directrix: " << z-((y*y)+1)*4*x << endl;
}
int main() {
float x = 6, y = 4, z = 7;
findParabolaProperties(x, y, z);
return 0;
}
실행 결과
위 코드를 컴파일하여 실행하면 다음과 같은 결과가 출력됩니다.
Vertex: (-0.333333, 228) Focus: (-0.333333, 229.5) Directrix: -401
마무리
지금까지 포물선 방정식의 상수 값만으로 꼭짓점, 초점, 준선을 손쉽게 구하는 방법을 살펴보았습니다. 튜토리얼 내용에 대해 궁금한 점이나 추가 질문이 있다면 댓글로 남겨주세요.