Projektion von Vektoren bei orthogonaler Ansicht



  • ich möchte einen Punkt auf einen Vektor projezieren.
    Das müsste doch einfacher (Pytagoras) sein?



  • Die Formel ist allgemeingültig. Du kannst einen Punkt durch seinen Ortsvektor beschreiben. Eine Gerade kannst du durch einen Ortsvektor und einen Richtungsvektor beschreiben. Mit diesem Wissen kannst du die Formel anwenden. Wenn du schon dein ganzes Straßennetz als Vektoren vorliegen hast, wieso dann nicht so?



  • Danke, habs nun endlich verstanden..



  • leider habe ich nun doch Probleme beim rechnen.

    Skalarprodukt und Skalarmultiplikation habe ich verstanden, also das reine ausrechnen.

    Aber ich übergebe das Ergebnis an eine GrafikBib und hier ist es falsch. Also wenn ich Vektor a auf Vektor b abbilde, brauche ich die x, y Werte von a'

    trans->translation.setValue(xWert,yWert,0.0f);
    

    kann mit jemand ein Rechnenbeispiel geben? Bei mir kommt nur Müll raus.

    Ich habe folgende Werte:
    der Vektor, den ich projezieren möchte, hat den x-Wert 42490 und y -11307
    der Vektor, auf den projeziert wird, hat den Startpunkt p1 (-2599/1152) und Ende p2(-641/750)

    Bin für jede Antwort dankbar, stehe total auf dem Schlauch...



  • Ein Vektor hat keinen Startpunkt. Aber du kannst das so machen:
    Wir nennen den Ortsvektor des zu projezierenden Punktes mal p\vec p und die Ortsvektoren der Endpunkte der Strecke mal sb\vec s_b und se\vec s_e. Als erstes tun wir so, als ob die Strecke im Ursprung beginnen würde, d.h. wir verschieben unser ganzes Koordinatensystem um sb\vec s_b. Also:
    p_t=ps_b\vec p\_t =\vec p - \vec s\_b
    Jetzt können wir den transformierten Ortsvektor auf den Vektor zwischen Anfangs- und Endpunkt projezieren. Am Ende müssen wir den Vektor, den wir daraus erhalten noch zurückverschieben.
    x=x_t+s_b\vec x = \vec x\_t + \vec s\_b (xt ist das Ergebnis der Projektion)
    x ist der Ortsvektor des projezierten Punkts.

    Hab nicht rausgefunden, wie ich ' mit Latex so hinkriege, dass es nicht schrottig aussieht, also habe ich p' einfach x genannt.



  • geloescht schrieb:

    Um einen Vektor b auf einen Vektor a zu projezieren gibt es folgende Formel:
    (ab)a(a)2\frac{(\vec a \cdot \vec b) \cdot \vec a}{(\vec a)^2}

    Mal eine Randfrage: Wie kann man diese Formel auf 3D erweitern? (sprich: Ich habe einen Vektor (OP) und möchte ihn senkrecht auf die Ebene projizieren, die von (OA) und (OB) aufgespannt wird)



  • @cstoll:
    angenommen du willst (0C) auf die Ebene <(0A),(0B)> projizieren. (alle lin. unabhängig)
    du projizierst ihn dann erst auf (0A) nach der angegebenen formel und dann auf (0B).
    diese beiden vektoren addierst du zusammen und dann bekommst du den auf die ebene projizierten vektor.
    auf diese weise kannst du das auf beliebige dimensionen ausweiten.



  • Seht ihr den Fehler? Habe ich es immer noch grundsätzlich flasch verstanden?
    Ich bin mir sicher, dass meine Rechnung falsch ist. Denn der projezierte Ortsvektor liegt nicht auf dem, auf den er projeziert wurde.

    Werte:
    der Ortsvektor, den ich projezieren möchte, hat den x-Wert 42490 und y -11307
    der Vektor, auf den projeziert wird, hat sb (-2599/1152) und se(-641/750)
    Ich hoffe ihr könnt es so lesen, habe leider kein latex.

    1. Verschiebung des ganzes Koordinatensystems. pt:

    pt = 42490  -  -2599  = 45089
         -1137     1152     -2289
    

    2. den transformierten Ortsvektor auf den Vektor zwischen Anfangs- und Endpunkt projezieren

    habe zuerst se-sb gerechnet. ergebnis sm:

    1958
    -402
    

    dann skalarprodukt
    sm * pt

    89204440
    

    Skalarmultiplikation:

    89204440 * sm =
    174662293520
    -35860184880
    

    Skalarprodukt sm mit sich selbst:

    3995368

    dann:

    174662293520 *  1/3995368 = 43716,20
    -35860184880                0,04044
    

    3. Zurückverschieben

    43716,20 + -2599 = 41117,2
    0,04044    1152    1152,04
    

    habe es mehrfach durchgerechnet, finde nicht was falsch ist. Kann mir jemand helfen?



  • <---> schrieb:

    der Ortsvektor, den ich projezieren möchte, hat den x-Wert 42490 und y -11307

    pt = 42490  -  -2599  = 45089
         [b]-1137[/b]     1152     -2289
    

    Sieht jemand den Unterschied?



  • oh, danke!!

    Der Rechenweg ansich ist aber richtig, oder?


Anmelden zum Antworten