Normalenvektor einer Ebene in C++ berechnen



  • Hallo,

    habe folgendes Problem: Ich habe 3 Punkte und damit die Gleichung einer Ebene in Parameterform. Um den Normalenvektor zu bekommen möchte ich die Gleichung in die Koordinatenform umwandeln (So wie das Beispiel welches ich am Ende verlinkt habe). Allerdings stehe ich gerade total auf dem Schlauch, da ich nicht weiss wie ich diese Gleichungen mit mehreren Variablen darstellen soll.

    http://www.bilder-upload.eu/thumb/c62231-1464134934.png



  • Hallo Chris,

    Willkommen im C++-Forum.

    ChrisMai schrieb:

    habe folgendes Problem: Ich habe 3 Punkte und damit die Gleichung einer Ebene in Parameterform. Um den Normalenvektor zu bekommen möchte ich die Gleichung in die Koordinatenform umwandeln (So wie das Beispiel welches ich am Ende verlinkt habe). Allerdings stehe ich gerade total auf dem Schlauch, da ich nicht weiss wie ich diese Gleichungen mit mehreren Variablen darstellen soll.

    Am besten gar nicht, sondern einfach über das Kreuzprodukt der beiden Richtungsvektoren, die hinter r und s stehen.

    Hier findest Du die Implementierung eines (mathematischen) Vektors. Falls Du kein boost hat, so lasse die Ableitung zunächst weg. Dein Problem kann dann so gelöst werden:

    #include "Vector.h" // basic_vector<> aus https://www.c-plusplus.net/forum/p1108802#1108802
    #include <iostream>
    
    int main() 
    {
        using namespace std;
        Vector rr( 1, 2, 0 );
        Vector ss( 1, 0, 3 );
        Vector n = rr;
        n %= ss;    // Kreuzprodukt rr x ss
        cout << "n = " << n << endl;
    
        return 0;
    }
    

    Gruß
    Werner

    PS.: beim ' operator* ' in der Klasse basic_vector fehlt ein Semikolon.


Log in to reply