Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में 3D में दो समतलों के बीच का कोण


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

  1. C प्रोग्राम में 3D में दो तल के बीच का कोण C प्रोग्राम में 3D में दो तल के बीच का कोण

    समस्या विवरण यहां हम त्रि-आयामी स्थान में दो तल के बीच का कोण गणना करना देखेंगे। तल P1 और P2 हैं। Pi के समीकरण इस प्रकार हैं: a₁x + b₁y + c₁z + d₁ = 0 a₂x + b₂y + c₂z + d₂ = 0 सूत्र यदि कोण A है, तो: cos A = |a₁a₂ + b₁b₂ + c₁c₂| / (√(a₁²+b₁²+c₁²) * √(a₂²+b₂²+c₂²)) C++ प्रोग्राम उदाहरण d = d;

  1. C++ में BST के दो नोड्स के बीच अधिकतम तत्व C++ में BST के दो नोड्स के बीच अधिकतम तत्व

    समस्या कथन N तत्वों का एक ऐरे और दो पूर्णांक A, B दिए गए हैं जो दिए गए ऐरे से संबंधित हैं। arr[0] से arr[n-1] तक तत्व डालकर एक बाइनरी सर्च ट्री बनाएं। कार्य A से B तक के पथ में अधिकतम तत्व ढूंढना है। उदाहरण यदि ऐरे है {24, 23, 15, 36, 19, 41, 25, 35} तो हम BST को निम्नानुसार बना सकते हैं: यदि हम

  1. बाइनरी ट्री के दो नोड्स के बीच की दूरी खोजें C++ में बाइनरी ट्री के दो नोड्स के बीच की दूरी खोजें C++ में

    मान लीजिए हमारे पास कुछ नोड्स के साथ एक बाइनरी ट्री है। हमें दो नोड्स u और v के बीच की दूरी खोजनी है। मान लीजिए ट्री नीचे जैसा है - अब (4, 6) के बीच की दूरी = 4, पथ की लंबाई 4 है, (5, 8) के बीच की लंबाई = 5 आदि। इस समस्या को हल करने के लिए, हम LCA (निम्नतम सामान्य पूर्वज) खोजेंगे, फिर LCA से दो नोड