C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

ポイントがC++の楕円の内側、外側、または上にあるかどうかを確認します


1つの楕円が与えられ(中心座標(h、k)と半長軸a、および半短軸b)、別の点も与えられたとします。ポイントが楕円の内側にあるかどうかを確認する必要があります。それを解くには、与えられた点(x、y)について次の方程式を解く必要があります。

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

結果が1未満の場合、ポイントは楕円の内側にあり、そうでない場合はそうではありません。

#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

  1. 特定の数字がC++の特定の範囲に存在するかどうかを確認するためのクエリ

    この問題では、配列arr []と、それぞれが3つの値LとR、およびvalで構成されるいくつかのクエリを指定しました。私たちのタスクは、クエリを解決して、C++の特定の範囲に特定の数字が存在するかどうかを確認するプログラムを作成することです。 問題の説明- 各クエリを解決するには、指定された要素valがLとRの間の指定された範囲に存在するかどうかを確認する必要があります。 問題を理解するために例を見てみましょう 入力 :arr [] ={4、8、1、7、2、9、3、5、1} Q =3 クエリ={{1、4、3}、{0、2、1}、{4、7、2}} 出力 :存在しない プレゼント

  2. C++のMazeIII

    空のスペースと壁のある迷路があり、その迷路の中にボールもあるとします。ボールは、上(u)、下(d)、左(l)、または右(r)の方向に転がることで空きスペースを通過できますが、壁にぶつかるまで転がり続けます。ボールが止まると、次の方向を選ぶことができます。その迷路にも1つの穴があります。ボールが穴に転がると、ボールは穴に落ちます。 したがって、ボールの位置、穴の位置、迷路がある場合、最短距離を移動することでボールがどのように穴に落ちるかを調べる必要があります。ここで、距離は、ボールがスタート(除外)からホール(含まれる)まで移動した空きスペースの数によって定義されます。 「u」、「d」、「l