Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

점이 C++에서 내부, 외부 또는 포물선 위에 있는지 확인

<시간/>

하나의 포물선이 주어졌다고 가정하고(정점 좌표(h, k)와 초점과 꼭짓점으로부터의 거리가 a임), 다른 점도 주어집니다. 우리는 그 점이 포물선 안에 있는지 여부를 찾아야 합니다. 그것을 풀기 위해 우리는 주어진 점 (x, y)에 대해 다음 방정식을 풀어야 합니다.

\left(y-k\right)^2=4a\left(x-h\right)

결과가 0보다 작으면 포물선 내부에 있고 0이면 포물선 위에 있고 0보다 크면 포물선 외부에 있습니다.

예시

#include <iostream>
#include <cmath>
using namespace std;
int isInsideParabola(int h, int k, int x, int y, int a) {
   int res = pow((y - k), 2) - 4 * a * (x - h);
   return res;
}
int main() {
   int x = 2, y = 1, h = 0, k = 0, a = 4;
   if(isInsideParabola(h, k, x, y, a) > 0){
      cout <<"Outside Parabola";
   }
   else if(isInsideParabola(h, k, x, y, a) == 0){
      cout <<"On the Parabola";
   } else{
      cout <<"Inside Parabola";
   }
}

출력

Inside Parabola