Samstag, 13. Juni 2026

Schnitt zweier Ebenen

 

Die Gleichung   bestimmt die allgemeine Form einer Ebene im Raum. Wenigstens eine der Koordinaten x, y, z muss einen von Null verschiedenen Koeffizienten haben. Wenn in einem Koordinatensystem zwei Ebenen E1 und E2 durch zwei lineare Gleichungen gegeben sind,

so stellt der Ausdruck

den Winkel zweier Ebenen dar.

Als Beweis gilt die Formel fürs Skalarprodukt zweier Normalenvektoren:

Es gibt drei Fälle:

1)      Ebenen E1 und E2 sind parallel;


 

2)      Ebenen E1 und E2 stehen aufeinander senkrecht;


 

3)      Ebenen E1 und E2 schneiden einander.


 

Das folgende C++ Programm zeigt diesen Algorithmus und berechnet den Winkel zwischen den Ebenen.

#include <iostream>
#define _USE_MATH_DEFINES
#include <cmath>
using namespace std;

int main()
{
    float A1, B1, C1, D1, A2, B2, C2, D2; // Koeffizienten
    double sp, betragN1, betragN2, winkel;  // Skalarprodukt, Betraege, Winkel
    
    cout << "Das Programm berechnet den Winkel zwischen zwei Ebenen." << endl;
    cout<<"Die Ebenen werden in der Form Ax + By + Cz + D = 0 dargestellt."<<endl;
    cout<<"Geben Sie bitte die Koeffizienten ein:"<<endl;
    cout << "A1 = ";
    cin >> A1;
    cout << "B1 = ";
    cin >> B1;
    cout << "C1 = ";
    cin >> C1;
    cout << "D1 = ";
    cin >> D1;
    cout << endl;
    
    cout<<"Die erste Ebene hat die folgende Gleichung:"<<endl;
    cout<<A1<<"X + ("<<B1<<")Y + ("<<C1<<")Z + ("<<D1<<") = 0"<<endl<<endl;
    
    cout << "A2 = ";
    cin >> A2;
    cout << "B2 = ";
    cin >> B2;
    cout << "C2 = ";
    cin >> C2;
    cout << "D2 = ";
    cin >> D2;
    cout << endl;
    cout<<"Die zweite Ebene hat die folgende Gleichung:"<<endl;
    cout<<A2<<"X + ("<<B2<<")Y + ("<<C2<<")Z + ("<<D2<<") = 0"<<endl;
    cout<<endl;
    
    //Die Berechnung beginnt hier.
    sp = A1*A2 + B1*B2 + C1*C2;
    double n1 = pow(A1, 2)+pow(B1, 2)+pow(C1,2);
    betragN1 = sqrt(n1);
    double n2 = pow(A2, 2)+pow(B2, 2)+pow(C2,2);
    betragN2 = sqrt(n2);
    winkel = acos(sp/(betragN1*betragN2));
    
    //Der Winkel wird in Grad umgerechnet.
    double wgrad = (winkel*180)/M_PI;
    
    if (wgrad < 0.001)
    cout << "Die Ebenen sind parallel."<< endl;
    else
    cout<<"Der Winkel zwischen den Ebenen ist gleich "<<wgrad<< " Grad"<<endl;
    
    return 0;
}


 


Keine Kommentare:

Schnitt zweier Ebenen

  Die Gleichung     bestimmt die allgemeine Form einer Ebene im Raum. Wenigstens eine der Koordinaten x, y, z muss einen von Null verschie...