检查点在C ++中是在椭圆的内部,外部还是在椭圆上

假设给出了一个椭圆(中心坐标(h,k)和半长轴a,以及半短轴b),还给出了另一点。我们必须找到该点是否在椭圆内。为了解决这个问题,我们必须针对给定的点(x,y)解决以下方程式。

$$\ frac {\ left(xh \ right)^ 2} {a ^ 2} + \ frac {\ left(yk \ right)^ 2} {b ^ 2} \ leq1 $$

如果结果小于一,则该点在椭圆内,否则不在椭圆内。

示例

#include <iostream>

#include <cmath>

using namespace std;

bool isInsideEllipse(int h, int k, int x, int y, int a, int b) {

   int res = (pow((x - h), 2) / pow(a, 2)) + (pow((y - k), 2) / pow(b, 2));

   return res;

}

int main() {

   int x = 2, y = 1, h = 0, k = 0, a = 4, b = 5;

   if(isInsideEllipse(h, k, x, y, a, b) > 1){

      cout <<"Outside Ellipse";

   }

   else if(isInsideEllipse(h, k, x, y, a, b) == 1){

      cout <<"On the Ellipse";

   } else{

      cout <<"Inside Ellipse";

   }

}

输出结果

Inside Ellipse

以上是 检查点在C ++中是在椭圆的内部,外部还是在椭圆上 的全部内容, 来源链接: utcz.com/z/338056.html

回到顶部