Cho 4 điểm (x1, y1, z1), (x2, y2, z2), (x3, y3, z3) và (x4, y4, z4), 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 gọi là đồng phẳng nếu chúng nằm trên cùng một mặt phẳng, nếu chúng nằm trên các mặt phẳng khác nhau thì các điểm không đồng phẳng.
Hình ảnh dưới đây chứa 4 điểm và tất cả đều nằm trên cùng một mặt phẳng là mặt phẳng xy, nghĩa là các điểm đồng phẳng:

Hình ảnh dưới đây chứa 4 điểm nằm trên các mặt phẳng khác nhau, cho thấy các điểm không đồng phẳng:

Ví dụ
Đầu vào: x1=2, y1=3, z1=1, x2=1, y2=9, z2=3, x3=3, y3=1, z3=5, x4=23, y4=21, z4=9 Đầu ra: chúng không đồng phẳng Đầu vào: x1=3, y1=2, z1=-5, x2=-1, y2=4, z2=-3, x3=-3, y3=8, z3=-5, x4=-3, y4=2, z4=1 Đầu ra: chúng đồng phẳng
Phương pháp sử dụng trong chương trình dưới đây:
- 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 mặt phẳng và kiểm tra xem chúng có thỏa mãn điều kiện hay không
- Hiển thị các điểm có đồng phẳng hay không
THUẬT TOÁN
BẮT ĐẦU
Bước 1 → Khai báo hàm kiểm tra 4 điểm trong 3D có đồng phẳng hay không
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)
Khai báo biến int a1 = x2 - x1
Khai báo biến int b1 = y2 - y1
Khai báo biến int c1 = z2 - z1
Khai báo biến int a2 = x3 - x1
Khai báo biến int b2 = y3 - y1
Khai báo biến int c2 = z3 - z1
Khai báo biến int a = b1 * c2 - b2 * c1
Khai báo biến int b = a2 * c1 - a1 * c2
Khai báo biến int c = a1 * b2 - b1 * a2
Khai báo biến int d = (- a * x1 - b * y1 - c * z1)
KIỂM TRA
NẾU (a * x + b * y + c * z + d == 0)
In "đồng phẳng"
KẾT THÚC
NGƯỢC LẠI
In "không đồng phẳng"
KẾT THÚC
Bước 2 → Trong main()
Khai báo và gán biến 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
Gọi check_coplanar(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4)
KẾT THÚC
Ví dụ mã nguồn
#include <bits/stdc++.h>
using namespace std;
// Kiểm tra 4 điểm trong không gian có đồng phẳng hay không
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, y1 = 3, z1 = 1;
int x2 = 1, y2 = 9, z2 = 3;
int x3 = 3, y3 = 1, z3 = 5;
int x4 = 23, y4 = 21, z4 = 9;
check_coplanar(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4);
return 0;
}
Kết quả đầu ra
they are not coplanar