Richtungsvektor aus einer Normale



  • Mein Problem ist etwas kompliziert zu erklären:
    ich habe eine Welt aus mehreren Oberfächen, mit verschiedenen Normalen.
    (Stell dir Hügel vor)
    und möchte nun ein Objekt über diese Hügel mit gleichbleibender Geschwindigkeit bewegen.
    Ich habe nun die Normale der momentanen Oberfläche und die Bewegungsrichtung.

    Nun möchte ich folgendes Berechnen: einen Vektor, der in die Richtung des Richtungsvektors zeigt, aber auch rechtwinklig zur Normalen ist. Also wie eine Uhr auf einer unebenen Fläche, oder ein Schatten.

    Also sodass, wenn das Objekt beispielsweise nach vorne läuft, keine Geschwindigkeit verliert, wenn es eine Rampe hinaufläuft.

    Wie kann ich diesen Vektor berechnen?


  • Mod

    Wenn du sagst, dass die Bewegung in Richtung des Richtungsvektors erfolgt und gleichzeitig auch auf der Oberfläche, dann hast du implizit so etwas wie "oben" definiert. Denn von irgendwo her aus gesehen zeigt jeder Vektor in der Ebene in Richtung des Richtungsvektors. Du hast also eine bevorzugte Betrachtungsrichtung, die ich "oben" nenne. Diese ist bei deiner Vorstellung wohl auch senkrecht zum Bewegungsvektor (hauptsache linear unabhängig). ich spekuliere sogar mal, dass oben bei dir die z-Richtung ist und der Richtungsvektor in der xy-Ebene liegt. Ich bleibe aber ganz allgemein:

    Normale: n\vec n
    Richtungsvektor: b\vec b
    Richtung oben: z\vec z
    gesuchter Vektor: v\vec v

    Bedingungen:
    Gesuchter Vektor senkrecht auf Normaler: nv=0\vec n \cdot \vec v = 0
    Richtungsvektor in Bewegungsrichtung: n=ab+bz\vec n = a \vec b + b \vec z mit a>0a > 0

    Ich habe es nicht durchgerechnet, aber das sollte reichen, um das System zu lösen. Du wirst in ein paar Sonderfälle hinein laufen, wie dass die Oberflächennormale senkrecht auf der "Oben"-Richtung steht und es dann nicht unbedingt eine Lösung gibt (Anschaulich: Senkrechte Wand).



  • Tut mir leid aber ich komm nach ganz mit.
    Also mir ist klar das das Skalarprodukt zwischen n und v null sein muss, damit sie rechtwinklig sind, nur bei der zweiten gleichung bin ich verwirrt, und auch dass ich Z mit einnbeziehen muss. (Ja es ist die Z Achse.)

    Aber ich weiss nicht genau welche Werte a und b sind.
    Wenn es die Geschwindigkeit des Objekts ist, geht die Gleichug nicht auf.

    Könntest du es vielleicht nochmal erklären?



  • Einfach die Komponente wegnehmen die dich stört.

    Also, hast du einen Vektor v\vec{v}, dann hat der einen Anteil in Richtung n\vec{n}, und zwar ist dieser Anteil (vn)n(\vec{v}\cdot\vec{n})\vec{n}.
    Den ziehst du nun ab:
    u=v(vn)n\vec{u} = \vec{v} - (\vec{v}\cdot\vec{n})\vec{n}
    Wie du leicht nachrechnen kannst ist der resultirende Vektor u\vec{u} senkrecht zu n\vec{n}.


  • Mod

    Vielleicht habe ich dich zu kompliziert verstanden. Das was ScottZhang vorschlägt passt ebenfalls zu deiner Beschreibung. Da wird das System nicht wie bei mir von "oben" betrachtet, sondern aus der Draufsicht auf die Ebene. War es das, was du meintest?



  • Ok ScottZhang, ich glaub ich habs jetzt begriffen.
    Ich kanns nur leider gerade nicht ausprobieren.
    Meld mich wenn ichs ausprobiert habe.

    Danke.


Anmelden zum Antworten