Punkt auf Vektor berechnen



  • Brauch mal nen tritt von auch in die richtige richtung...
    Ich brauche volgende funktion:

    3D_POINT CalcPos(3D_POINT start, 3D_POINT end, int iPercent)
    

    Gegeben sind 2 Punkte in einem Raum (start und endpunkt) und ein vortschritts-faktor. Bei iPercent=0 ist das egebniss der Funktion der startpunkt, bei iPercent = 100 ist das ergebniss der endpunkt, bei iPercent=50 der punkt der auf halben weg zwischen start und end liegt... Ich bekomms irgendwie net gebacken... schon erschreckend was man in 2-3 Jahren alles vergisst wenn sich net damit beschäfftigt 😞

    Kann mir einer von euch nen schubs in die richtige richtung geben?



  • Seien u,v bel. Punkte:

    x=u+t*(v-u), wobei t aus [0,1] (Damit erhält man die Gerade zwischen u und v.)

    Edit: Bin heute völlig verpeilt...



  • na toll... jetzt bin ich noch mehr durcheinander... :p 😃



  • CMatt schrieb:

    na toll... jetzt bin ich noch mehr durcheinander... :p 😃

    Das Problem kenne ich auch 😃

    3D_POINT CalcPos(3D_POINT start, 3D_POINT end, int iPercent)
    {
    return start+iPercent/100*(end-start);
    }



  • also damit wir nich aneinader vorbeireden:

    typedef struct 3D_POINT {
       double X;
       double Y;
       double Z;
    } 3D_POINT;
    

    Wir reden hier von 2 punkten in einem 3D raum (also mit wert auf der X, Y und Z achse). Die Formel für ne 1D-Gerade würde selbst auch noch grad hinbekommen 😛 :p



  • CMatt schrieb:

    Wir reden hier von 2 punkten in einem 3D raum (also mit wert auf der X, Y und Z achse). Die Formel für ne 1D-Gerade würde selbst auch noch grad hinbekommen 😛 :p

    Ja, soweit bin ich schon mitgekommen! (Die Klasse heißt schleißlich 3D_POINT :p )

    erg.X= start.X+iPercent/100*(end.X-start.X);
    erg.Y= start.Y+iPercent/100*(end.Y-start.Y);
    erg.Z= start.Z+iPercent/100*(end.Z-start.Z);

    Edit: Das könnte man auch n-dimensional machen, wenn man Langeweile hat...



  • 😮

    das kann ja wohl net whar sein........ zum geier kommen die ganzen quardartwurzeln und exponenten in meine formeln.... lmao

    BIG THX! 🙂



  • start+iPercent/100*(end-start);
         ^            ^    ^
                           vektorielle Subtraktion
                      Skalarmultiplikation
         vektorielle Addition
    

    so meinte ich das am Anfang!

    bei "return start+iPercent/100*(end-start)"müßten dann die Operatoren überladen sein...



  • schon klar jetzt......... hatte mich da nur in was verbissen was mir völlig das gehrin zugemauert hat...... 😃

    🙂


Anmelden zum Antworten