3D में दो समतलों के बीच के कोण के बारे में सीखने के लिए, हमें समतलों और कोणों के बारे में सीखने की आवश्यकता है।
समतल (Plane) एक द्वि-आयामी सतह है जो अनंत तक फैली होती है।
कोण (Angle) दो रेखाओं और सतहों के बीच डिग्री में स्थान है जो एक बिंदु पर प्रतिच्छेद करते हैं।
तो, इस समस्या में हमें दो 3D समतलों के बीच का कोण ज्ञात करना होगा। इसके लिए हमारे पास दो समतल हैं जो एक-दूसरे को प्रतिच्छेद करते हैं और हमें उस कोण को ज्ञात करना होगा जिस पर वे एक-दूसरे को प्रतिच्छेद कर रहे हैं।
दो 3D समतलों के बीच का कोण गणना करने के लिए, हमें इन समतलों के अभिलंबों के बीच का कोण गणना करना होगा।
यहां, हमारे पास दो समतल हैं,
p1: ax + by + cz + d = 0 p2: hx + iy + jz + k = 0
समतल p1 और p2 के अभिलंबों की दिशाएं (a,b,c) और (h,i,j) हैं।
इन दो समतलों के अभिलंबों के बीच का कोण ज्ञात करने के लिए एक गणितीय सूत्र बनाया गया है,
Cos θ = {(a*h) + (b*i) + (c*j)} / [√(a² + b² + c²) * √(h² + i² + j²)]
θ = Cos⁻¹ { {(a*h) + (b*i) + (c*j)} / [√(a² + b² + c²) * √(h² + i² + j²)] }
उदाहरण
#include <iostream>
#include <math.h>
using namespace std;
int main() {
float a = 2;
float b = 2;
float c = -1;
float d = -5;
float h = 3;
float i = -3;
float j = 5;
float k = -3;
float s = (a*h + b*i + c*j);
float t = sqrt(a*a + b*b + c*c);
float u = sqrt(h*h + i*i + j*j);
s = s / (t * u);
float pi = 3.14159;
float A = (180 / pi) * (acos(s));
cout << "Angle is " << A << " degree";
return 0;
}
आउटपुट
Angle is 104.724 degree