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

C++で円に関する座標の象限を見つける


1つの円(中心座標と半径)があり、別の指定された点(x、y)の象限が円の中心を基準にして存在することを確認する必要があります。これが円に存在する場合は象限を印刷し、そうでない場合はエラーを印刷します。ポイントは外にあるので。

円の中心が(h、k)であり、点の座標が(x、y)であると仮定します。円の方程式は-

であることがわかっています。

(𝑥−ℎ) 2 +(𝑦−𝑘) 2 +𝑟 2 =0

現在、結果を決定するための条件はほとんどありません。

𝑖𝑓(𝑥−ℎ) 2 +(𝑦−𝑘) 2 >𝑟、𝑡ℎ𝑒𝑛𝑡ℎ𝑒𝑝𝑜𝑖𝑛𝑡𝑖𝑠𝑜𝑢𝑡𝑠𝑖𝑑𝑒

𝑖𝑓(𝑥−ℎ) 2 +(𝑦−𝑘) 2 =0、𝑡ℎ𝑒𝑛𝑡ℎ𝑒𝑝𝑜𝑖𝑛𝑡𝑖𝑠𝑜𝑛𝑡ℎ𝑒𝑐𝑖𝑟𝑟

𝑖𝑓(𝑥−ℎ) 2 +(𝑦−𝑘) 2 <𝑟、𝑡ℎ𝑒𝑛𝑡ℎ𝑒𝑝𝑜𝑖𝑛𝑡𝑖𝑠𝑖𝑛𝑠𝑖𝑑𝑒𝑡

#include<iostream>
#include<cmath>
using namespace std;
int getQuadrant(int h, int k, int rad, int x, int y) {
   if (x == h && y == k)
      return 0;
   int val = pow((x - h), 2) + pow((y - k), 2);
   if (val > pow(rad, 2))
      return -1;
   if (x > h && y >= k)
      return 1;
   if (x <= h && y > k)
      return 2;
   if (x < h && y <= k)
      return 3;
   if (x >= h && y < k)
      return 4;
}
int main() {
   int h = 0, k = 3;
   int rad = 2;
   int x = 1, y = 4;
   int ans = getQuadrant(h, k, rad, x, y);
   if (ans == -1)
      cout << "Point is Outside of the circle" << endl;
   else if (ans == 0)
      cout << "Present at the center" << endl;
   else
      cout << ans << " Quadrant" << endl;
}

出力

1 Quadrant

  1. C++で重複する円と長方形

    (radius、xc、yc)として表される円があると仮定します。ここで、(xc、yc)は円の中心座標です。また、(x1、y1、x2、y2)として表される軸に沿った長方形があります。ここで、(x1、y1)は左下隅の座標であり、(x2、y2)は右上隅の座標です。長方形の角。円と長方形が重なっていないか確認する必要があります。 したがって、入力が次のような場合 そうすれば、出力は真になります。 これを解決するには、次の手順に従います- 関数eval()を定義します。これには、a、b、c、が必要です。 bの最大値とaとcの最小値を返します メインの方法から、次のようにしま

  2. C++の行列に奇数値を持つセル

    行列の次元であるnとmがあるとします。これらはゼロで初期化されます。そして、インデックスは、indexes [i] =[ri、ci]で与えられます。 [ri、ci]の各ペアについて、行riと列ciのすべてのセルを1ずつインクリメントする必要があります。出力は、すべてのインデックスに増分を適用した後、マトリックス内の奇数値を持つセルの数になります。 これを解決するには、次の手順に従います- 奇数:=0、およびx:=行列の行数を初期化します マトリックスマットを作成する 0からxの範囲のiの場合 r =input [i、0]、c =input [i、1]、 0からm–1の範囲のjの場合 m