用 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

更新於: 22-10-2019

303 瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始
廣告