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

C++에서 포물선의 꼭짓점, 초점, 준선 구하는 방법


이 튜토리얼에서는 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

마무리

지금까지 포물선 방정식의 상수 값만으로 꼭짓점, 초점, 준선을 손쉽게 구하는 방법을 살펴보았습니다. 튜토리얼 내용에 대해 궁금한 점이나 추가 질문이 있다면 댓글로 남겨주세요.