Computer >> Máy Tính >  >> Lập trình >> C ++

Kiểm tra xem một điểm nằm bên trong, bên ngoài hay trên hình elip trong C ++

Giả sử, cho trước một hình elip (tọa độ tâm (h, k) và bán trục a, và bán trục nhỏ b), một điểm khác cũng được cho. Chúng ta phải tìm xem điểm đó có nằm bên trong hình elip hay không. Để giải nó, chúng ta phải giải phương trình sau cho điểm đã cho (x, y).

$$ \ frac {\ left (x-h \ right) ^ 2} {a ^ 2} + \ frac {\ left (y-k \ right) ^ 2} {b ^ 2} \ leq1 $$

Nếu kết quả nhỏ hơn một, thì điểm đó nằm bên trong hình elip, ngược lại thì không.

Ví dụ

#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";
   }
}

Đầu ra

Inside Ellipse