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

C++の長方形領域


2D平面内の2つの直線状の長方形で覆われる総面積を求めたいとします。ここで、各長方形は、図に示すように、左下隅と右上隅によって定義されます。

C++の長方形領域

これを解決するには、次の手順に従います-

  • C=EまたはA>=GまたはB>=HまたはD<=Fの場合、

    • return(C – A)*(D – B)+(G – E)*(H – F)

  • 配列hを定義し、A、C、E、Gをhに挿入します

  • 配列vを定義し、B、D、F、Hをvに挿入します

  • h配列の並べ替えとv配列の並べ替え

  • temp:=(h [2] – h [1])*(v [2] – v [1])

  • 合計:=temp

  • 合計:=合計+(C – A)*(D – B)

  • 合計:=合計+(G – E)*(H – F)

  • 合計を返す

例(C ++)

理解を深めるために、次の実装を見てみましょう-

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
      if(C <= E || A >= G || B >= H || D <= F) return (C - A) * (D - B) + (G - E) * (H - F);
      vector <int> h;
      h.push_back(A);
      h.push_back(C);
      h.push_back(E);
      h.push_back(G);
      vector <int> v;
      v.push_back(B);
      v.push_back(D);
      v.push_back(F);
      v.push_back(H);
      sort(h.begin(), h.end());
      sort(v.begin(), v.end());
      long long int temp = (h[2] - h[1]) * (v[2] - v[1]);
      long long int total = - temp;
      total += (C - A) * (D - B);
      total += (G - E) * (H - F);
      return total;
   }
};
main(){
   Solution ob;
   cout << (ob.computeArea(-3, 0, 3, 4, 0, -1, 9, 2));
}

入力

-3
0
3
4
0
-1
9
2

出力

45

  1. C++の平行四辺形内の三角形の面積

    図形の面積は、2次元平面での図形の範囲です。 三角形 は3辺のポリゴンです。 平行四辺形 は、反対側が等しく平行な四辺形です。 このプログラムでは、底辺と高さが平行四辺形で、平行四辺形と同じ底辺に三角形が内接しています。指定された底辺と高さを使用して三角形の面積を計算する必要があります。 平行四辺形は次の式で与えられるため、構築された三角形の面積は平行四辺形の底と一般的な高さを取ります=0.5*底*高さ area = ½ * b * h 例 #include<iostream> #include<math.h> using names

  2. C++の正方形の外接円の面積

    この問題では、正方形の辺が与えられたときに、正方形の外接円の面積を計算します。先に進む前に、概念をよりよく理解するために基本的な定義を修正しましょう。 正方形 はすべての辺が等しい四辺形です。 外接円 円はポリゴンのすべての頂点に接しています。 エリア は、任意の2次元図形の範囲を定量的に表したものです。 正方形の外接円の面積を計算します。円と正方形のパラメータの関係を見つける必要があります。 これで、図のように、正方形のすべての頂点が円に接触しています。この図を見ると、正方形の対角線は円の直径に等しいと結論付けることができます。 これを使用して、円の直径と正方形の辺の関係を