Punkt zwischen zwei Vektoren



  • Hio!

    Ich habe zwei Vektoren a und b, die beide gleich lang sind und denselben Mittelpunkt haben. Um nun zu schauen ob ein Punkt zwischen den beiden Vektoren liegt wollte ich schauen ob der Punkt in einem Kreis mit Mittelpunkt = Vektormittelpunkt und Radius = Vektorlänger liegt.
    Das wäre nun aber etwas zu viel, wie könnte ich den Kreis geschickt beschränken, sodass ich halt weiss ob Punkte zwischen den beiden Vektoren liegen?

    Danke!


  • Mod

    Pille456 schrieb:

    Hio!

    Ich habe zwei Vektoren a und b, die beide gleich lang sind und denselben Mittelpunkt haben. Um nun zu schauen ob ein Punkt zwischen den beiden Vektoren liegt wollte ich schauen ob der Punkt in einem Kreis mit Mittelpunkt = Vektormittelpunkt und Radius = Vektorlänger liegt.
    Das wäre nun aber etwas zu viel, wie könnte ich den Kreis geschickt beschränken, sodass ich halt weiss ob Punkte zwischen den beiden Vektoren liegen?

    Danke!

    Hallo Pille456,

    so ganz schlau werde ich aus deinen Ausführungen nicht, da du die Begriffe vektor und Punkt anscheinend durcheinander wirfst. Zum Beispiel haben Vektoren keinen Mittelpunkt, sondern nur eine Richtung.

    Wenn ich dich aber richtig verstehe, versuchst du herauszufinden, ob ein Punkt in dem Kreissegment liegt, dass durch zwei Vektoren aufgespannt wird. Also ich würde dazu wie folgt vorgehen: Bestimme den Vektor der den Punkt mit dem Ursprung verbindet (oder mit dem Ort, den du Vektormittelpunkt nennst). Bestimme die Länge dieses Vektors. Ist er länger als die beiden anderen, so liegt der Punkt schonmal außerhalb. Ist die Länge kleiner als die der anderen Vektoren berechne die Winkel zwischen dem Punktvektor und den beiden gegebenen Vektoren. Ist die Summer der Winkel >180°, so liegt der Punkt außerhalb. In allen anderen Fällen liegt er, wie du sagen würdest, zwischen den beiden Vektoren.

    Ich hoffe, ich habe dein Problem richtig verstanden, so dass ich dir helfen konnte.



  • So ganz werd ich aus deiner Beschreibung auch nicht schlau, aber wenn du wirklich nur prüfen willst ob ein Vektor v zwischen 2 Vektoren a und b liegt sollte es reichen, wenn du schaust ob folgende Gleichung gilt:

    a + t*d = v, wobei t ein Skalar und d der normalisierte Vektor von a nach b ist (also d=norm(b-a) )



  • Ich mach das so:
    - berechne Fläche des Dreieckes Mitte-> V1- Ende -> Punkt
    - berechne Fläche des Dreieckes Mitte-> Punkt-> V2- Ende
    haben beide Flächen gleiches Vorzeichen:
    - Vektor Mitte-> Punkt liegt zwischen beiden Vektoren
    sonst
    - Punkt liegt ausserhalb

    Wenn dazwischen, könnte noch die Lange der Vektore getestet werden zu Abstand Mitte-> Punkt.

    Gruss
    Frank



  • DerAltenburger schrieb:

    Ich mach das so:
    - berechne Fläche des Dreieckes Mitte-> V1- Ende -> Punkt
    - berechne Fläche des Dreieckes Mitte-> Punkt-> V2- Ende
    haben beide Flächen gleiches Vorzeichen:
    - Vektor Mitte-> Punkt liegt zwischen beiden Vektoren
    sonst
    - Punkt liegt ausserhalb

    Wenn dazwischen, könnte noch die Lange der Vektore getestet werden zu Abstand Mitte-> Punkt.

    Gruss
    Frank

    wieso so kompliziert? und seit wann hat eine fläche ein vorzeichen?



  • Ist doch nicht kompliziert.

    http://de.wikipedia.org/wiki/Dreiecksfläche

    Vorzeichen hängt von "Umlaufrichtung" ab.

    Gruss
    Frank



  • this->that schrieb:

    So ganz werd ich aus deiner Beschreibung auch nicht schlau, aber wenn du wirklich nur prüfen willst ob ein Vektor v zwischen 2 Vektoren a und b liegt sollte es reichen, wenn du schaust ob folgende Gleichung gilt:

    a + t*d = v, wobei t ein Skalar und d der normalisierte Vektor von a nach b ist (also d=norm(b-a) )

    Und was ist t für ein Skalar? Der muss ja einen Wert haben...

    Tut mir Leid, ich hatte mich wirklich etwas dumm ausgedrückt:
    Also ich habe zwei Vektoren a und b. Beide haben den gleichen Betrag, sind also gleich lang. Diese beiden Vektoren bilden nun zusammen einen Halbkreis mit r = |a| = |b| (wobei |a| = Betrag des Vektors a)
    Nun möchte ich wissen ob ein Punkt (x,y,z Koordinate), also so gesehen auch ein Vektor, in diesem Halbkreis liegt.


  • Mod

    Pille456 schrieb:

    this->that schrieb:

    So ganz werd ich aus deiner Beschreibung auch nicht schlau, aber wenn du wirklich nur prüfen willst ob ein Vektor v zwischen 2 Vektoren a und b liegt sollte es reichen, wenn du schaust ob folgende Gleichung gilt:

    a + t*d = v, wobei t ein Skalar und d der normalisierte Vektor von a nach b ist (also d=norm(b-a) )

    Und was ist t für ein Skalar? Der muss ja einen Wert haben...

    Tut mir Leid, ich hatte mich wirklich etwas dumm ausgedrückt:
    Also ich habe zwei Vektoren a und b. Beide haben den gleichen Betrag, sind also gleich lang. Diese beiden Vektoren bilden nun zusammen einen Halbkreis mit r = |a| = |b| (wobei |a| = Betrag des Vektors a)
    Nun möchte ich wissen ob ein Punkt (x,y,z Koordinate), also so gesehen auch ein Vektor, in diesem Halbkreis liegt.

    Dann habe ich dich anscheinend gleich richtig verstanden, was du willst. Mein vorheriger Beitrag erklärt daher eine passende Methode.



  • Pille456 schrieb:

    Und was ist t für ein Skalar? Der muss ja einen Wert haben...

    Ein Skalar ist ein Skalar. Den Wert sollst du ja eben ausrechnen. Wenn es ein t gibt für das die Gleichung gilt, dann liegt v zwischen a und b, ansonsten nicht.


Anmelden zum Antworten