Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++를 이용해 포물선의 꼭짓점, 초점, 준선 구하기

이 글에서는 포물선 방정식의 계수 a, b, c가 주어졌을 때, 해당 포물선의 꼭짓점(Vertex), 초점(Focus), 그리고 준선(Directrix)을 구하는 C++ 프로그램을 다룹니다.

포물선이란?

포물선은 곡선 위의 모든 점이 하나의 고정된 점, 즉 초점으로부터 등거리에 있는 위치에 있는 곡선입니다. 물체의 포물선 운동, 반사경의 설계 등 다양한 분야에서 활용되는 중요한 곡선입니다.

포물선의 일반 방정식과 공식

포물선의 일반적인 방정식은 다음과 같습니다.

y = ax2 + bx + c

이 방정식에서 꼭짓점, 초점, 준선은 각각 아래 공식으로 정의됩니다.

꼭짓점(Vertex) = (-b/2a, (4ac - b2)/4a)
초점(Focus) = (-b/2a, (4ac - b2 + 1)/4a)
준선(Directrix) : y = c - (b2 + 1) × 4a

C++ 구현 예제

위 공식을 바탕으로 계수 a, b, c를 입력받아 세 가지 요소를 계산하는 프로그램은 다음과 같이 작성할 수 있습니다.

#include <iostream>
using namespace std;

void calc_para(float a, float b, float c) {
    cout << "꼭짓점: (" << (-b / (2 * a)) << ", "
         << (((4 * a * c) - (b * b)) / (4 * a)) << ")" << endl;
    cout << "초점: (" << (-b / (2 * a)) << ", "
         << (((4 * a * c) - (b * b) + 1) / (4 * a)) << ")" << endl;
    cout << "준선: y = " << c - ((b * b) + 1) * 4 * a << endl;
}

int main() {
    float a = 23, b = 34, c = 5;
    calc_para(a, b, c);
    return 0;
}

실행 결과

a = 23, b = 34, c = 5를 대입했을 때 프로그램의 출력 결과는 다음과 같습니다.

꼭짓점: (-0.73913, -7.56522)
초점: (-0.73913, -7.55435)
준선: y = -106439

코드 설명

calc_para 함수는 세 개의 실수형 매개변수 a, b, c를 받아 각 공식에 대입합니다. 꼭짓점과 초점의 x좌표는 동일하게 -b/2a이며, y좌표만 차이가 납니다. 초점은 꼭짓점보다 y값이 1/4a만큼 크고, 준선은 꼭짓점에서 같은 거리만큼 떨어진 반대편에 위치한다는 기하학적 성질을 수식으로 표현한 것입니다.

이처럼 간단한 대수 공식만 알고 있다면, 복잡한 그래프 작업 없이도 코드 몇 줄로 포물선의 핵심 요소들을 손쉽게 계산할 수 있습니다.