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

Chương trình C ++ để kiểm tra xem các điểm trong mặt phẳng 3-D có phải là Đồng phẳng không

Cho các điểm (x1, y1, z1), (x2, y2, z2), (x3, y3, z3) và (x4, y4, z4) và chương trình phải kiểm tra xem các điểm đã cho có đồng phẳng hay không. Các điểm được cho là đồng phẳng là chúng nằm dưới cùng một mặt phẳng và nếu chúng nằm dưới 2 mặt phẳng khác nhau thì các điểm đó không phải là đồng phẳng.

Dưới đây là một hình ảnh chứa bốn điểm và tất cả đều nằm dưới cùng một mặt phẳng là mặt phẳng xy có nghĩa là các điểm là đồng phẳng

Chương trình C ++ để kiểm tra xem các điểm trong mặt phẳng 3-D có phải là Đồng phẳng không

Dưới đây là một hình ảnh chứa bốn điểm và tất cả đều nằm dưới các mặt phẳng khác nhau cho thấy các điểm không phải là đồng phẳng

Chương trình C ++ để kiểm tra xem các điểm trong mặt phẳng 3-D có phải là Đồng phẳng không

Ví dụ

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

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau -

  • Nhập các điểm vào các biến (x1, y1, z1), (x2, y2, z2), (x3, y3, z3) và (x4, y4, z4)
  • Tìm phương trình của mặt phẳng và kiểm tra xem chúng có thỏa mãn các điều kiện hay không
  • Hiển thị xem các điểm có đồng phẳng hay không

THUẬT TOÁN

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

Ví dụ

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

Đầu ra

Nếu chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

they are not coplanar