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

3D平面内の点が同一平面上にあるかどうかを確認するC++プログラム


ポイント(x1、y1、z1)、(x2、y2、z2)、(x3、y3、z3)、および(x4、y4、z4)が与えられ、プログラムは与えられたポイントが同一平面上にあるかどうかをチェックする必要があります。ポイントは、同じ平面の下にあり、異なる場合は同一平面上にあると言われます-2平面は、ポイントが同一平面上にありません。

以下に示すのは、4つのポイントを含む画像で、すべてが同じ平面の下にあります。これは、ポイントが同一平面上にあることを意味するxy平面です

3D平面内の点が同一平面上にあるかどうかを確認するC++プログラム

以下に示すのは、4つのポイントを含む画像で、すべてが異なる平面の下にあり、ポイントが同一平面上にないことを示しています

3D平面内の点が同一平面上にあるかどうかを確認するC++プログラム

Input-: x1 = 2, y1 = 3, z1 = 1, x2 = 1, y2 = 9, z2 = 3, x3 = 3, y3 = 1, z3 = 5, x4 = 23, y4 = 21, z4 = 9
Output-: they are not coplanar
Input-: x1 = 3, y1 = 2, z1 = -5, x2 = -1, y2 = 4, z2 = -3, x3 = -3, y3 = 8, z3 = -5, x4 = -3, y4 = 2, z4 = 1
Output-: they are coplanar

以下のプログラムで使用されるアプローチは次のとおりです

  • 変数(x1、y1、z1)、(x2、y2、z2)、(x3、y3、z3)、および(x4、y4、z4)にポイントを入力します
  • 平面の方程式を見つけて、それらが条件を満たしているかどうかを確認します
  • ポイントが同一平面上にあるかどうかを表示します

アルゴリズム

START
Step 1-> declare function to check whether points in 3-D are coplanar or not
   void check_coplanar(int x1,int y1,int z1,int x2,int y2,int z2, int x3, int y3, int z3, int x, int y, int z)
   declare variable as int a1 = x2 - x1
   declare variable as int b1 = y2 - y1
   declare variable as int c1 = z2 - z1
   declare variable as int a2 = x3 - x1
   declare variable as int b2 = y3 - y1
   declare variable as int c2 = z3 - z1
   declare variable as int a = b1 * c2 - b2 * c1
   declare variable as int b = a2 * c1 - a1 * c2
   declare variable as int c = a1 * b2 - b1 * a2
   declare variable as int d = (- a * x1 - b * y1 - c * z1)
   check
   IF(a * x + b * y + c * z + d = 0)  
      print coplanar
   End
   Else
      print not coplanar
   End
Step 2-> In main()
   declare and set variable int x1 = 2 , y1 = 3, z1 = 1, x2 = 1, y2 = 9, z2 = 3, x3 = 3, y3 = 1, z3 = 5, x4 = 23, y4 = 21, z4 = 9
   call check_coplanar(x1, y1, z1, x2, y2, z2, x3,y3, z3, x4, y4, z4)
STOP

#include<bits/stdc++.h>
using namespace std ;
//calculate points in a plane are coplanar or not
void check_coplanar(int x1,int y1,int z1,int x2,int y2,int z2, int x3, int y3, int z3, int x, int y, int z) {
    int a1 = x2 - x1 ;
    int b1 = y2 - y1 ;
    int c1 = z2 - z1 ;
    int a2 = x3 - x1 ;
    int b2 = y3 - y1 ;
    int c2 = z3 - z1 ;
    int a = b1 * c2 - b2 * c1 ;
    int b = a2 * c1 - a1 * c2 ;
    int c = a1 * b2 - b1 * a2 ;
    int d = (- a * x1 - b * y1 - c * z1) ;
    if(a * x + b * y + c * z + d == 0)  
       cout << "they are coplanar" << endl;  
    else
       cout << "they are not coplanar" << endl;                    
}
int main() {
    int x1 = 2;
    int y1 = 3 ;
    int z1 = 1 ;
    int x2 = 1 ;
    int y2 = 9 ;
    int z2 = 3 ;
    int x3 = 3 ;
    int y3 = 1 ;
    int z3 = 5 ;
    int x4 = 23 ;
    int y4 = 21 ;
    int z4 = 9 ;
    check_coplanar(x1, y1, z1, x2, y2, z2, x3,y3, z3, x4, y4, z4) ;                            
    return 0;  
}

出力

上記のコードを実行すると、次の出力が生成されます-

they are not coplanar

  1. C++で3つのポイントが同一線上にあるかどうかをチェックするプログラム

    3つの異なる値のポイントが与えられ、タスクはポイントが同一線上にあるかどうかを確認することです。 ポイントが同じ線上にある場合は同一線上にあると言われ、異なる線上にある場合は同一線上にありません。以下に、同一線上および非同一線上の点の図を示します。 入力 x1 = 1, x2 = 2, x3 = 3, y1 = 1, y2 = 4, y3 = 5 出力 no points are not collinear 入力 x1 = 1, y1 = 1, x2 = 1, y2 = 4, x3 = 1, y3 = 5 出力 points are collinear 以下のプログラム

  2. C++でべき等行列をチェックするプログラム

    行列M[r][c]が与えられた場合、「r」は行数を示し、「c」はr=cが正方行列を形成するような列数を示します。与えられた正方行列がべき等行列であるかどうかを確認する必要があります かどうか。 べき等行列 行列「M」はべき等行列と呼ばれます 行列「M」にそれ自体を掛けたものだけが同じ行列「M」を返す場合、つまり M * M=M。 以下の例のように- 上記の行列はそれ自体で乗算され、同じ行列を返すと言えます。したがって、マトリックスはIデポテンツマトリックスです。 。 例 Input: m[3][3] = { {2, -2, -4},    {-1, 3,