ให้ด้วยคะแนน (x1, y1, z1), (x2, y2, z2), (x3, y3, z3) และ (x4, y4, z4) และโปรแกรมต้องตรวจสอบว่าจุดที่กำหนดเป็น coplanar หรือไม่ คะแนนถูกกล่าวว่าเป็นระนาบเดียวกันคืออยู่ใต้ระนาบเดียวกันและหากอยู่ภายใต้ระนาบ 2 ที่ต่างกันกว่าจุดนั้นจะไม่ใช่ระนาบเดียวกัน
ด้านล่างเป็นภาพที่มีจุดสี่จุดและทั้งหมดอยู่ภายใต้ระนาบเดียวกันซึ่งเป็นระนาบ xy ที่หมายถึงจุดเป็นระนาบเดียวกัน
ด้านล่างเป็นภาพที่มีจุดสี่จุดและทั้งหมดอยู่ภายใต้ระนาบที่แตกต่างกันซึ่งแสดงว่าจุดไม่ใช่ระนาบเดียวกัน
ตัวอย่าง
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