Spiegelung eines Punktes bzgl. einer Gerade



  • Hallo,

    ich brauche eine Methode zum Spiegeln eines Punkte (x,y)
    bzgl. einer Gerade (y=m*x+n). Leider bin ich im Internet
    nicht fündig geworden. Habe da zwar eine Transformationsmatrix
    gefunden, aber die Ergebnisse sind sehr sonderbar.
    Danke für eure Hilfe

    mfG

    Ralf



  • Dieser Thread wurde von Moderator/in rapso aus dem Forum Spiele-/Grafikprogrammierung in das Forum Mathematik verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Vom zu spiegelnden Punkt ein Lot auf die Gerade fällen und dann bzgl. des Lotfußpunktes spiegel.



  • wenn du das nur für 2D brauchst:

    1. richtungvektor der geraden bestimmen, also die gerade in die form:
      g:x=s+trg: \vec x=\vec s+ t \vec rbringen, wobei s der stützvektor und r der rictungsvektor der geraden ist

    2. den ursprung des koordinatensystems nach s verschieben [bzw den punkt um -s verschieben, je nach dem wie mans sieht]

    3. jetzt musst du dein ganzes koordinatensystem so um den ursprung drehen, dass deine gerade zu einer x-Achse wird.

    4. die abbildung von deinem punkt p musst du jetzt nur noch an der x-achse spiegeln (y-koordinate mit -1 multiplizieren)

    5. koordinatensystem zurückdrehen

    6. koordinatensystem zurück verschieben

    so, das ist der grobe ablaufplan. das hört sich zwar voll schlimm an, aber dank der assoziativität der matrizenmultiplikation kannst du all diese abbildungen in eine einzige 3x3 matrix zusammenfassen. 👍

    \ps: kannst schon mal versuchen, diese ganzen matrizen aufzustellen, falls du alleine nicht weiterkommst, kommt die genaue rechnung etwas später, ich geh zuerstma n tässchen tee trinken... 😉



  • man kann auch alternativ nach dem umformen der gerade so verfahren(für 3D):

    1.erstelle eine Ebene mit dem zu transformierenden punkt(P) als Stützvektor und dem Richtungsvektor der geraden als normale.

    2.schneide die Ebene mit der Geraden

    3.Berechne den Verbindungsvector V zwischen P und dem Schnittpunkt

    berechne P+2*V=gespiegelter punkt.

    für 2D kann man statt der Ebene eine normale aufstellen die durch den Punkt p geht mit der steigung -1/m und diese dann mit der geraden schneiden.



  • \latex test (noch inhaltslos) ⚠

    (abcd)(abcd)\left(\begin{array}{cc} a & b \\ c & d \end{array}\right) \left(\begin{array}{cc} a & b \\ c & d \end{array}\right)

    ach du schei*e ist das kompliziert 😞
    na gut, ich hab's endlich 😃



  • oder einfacher:
    schnittpunkt S der geraden und ihrer normale durch den punkt den du spiegeln willst (P) aufstellen.
    Sei dann v:=OSOP\vec v:= \vec OS - \vec OP
    Der gespiegelte ortsvektor des punktes P' ist dann p=OS+v=2OS+OP\vec p = \vec OS + \vec v = 2*\vec OS + \vec OP



  • warum geht latex nicht?
    ok nochmal
    oder einfacher:
    schnittpunkt S der geraden und ihrer normale durch den punkt den du spiegeln willst (P) aufstellen.
    Sei dann Vektor(v) := Vektor(OS) - Vektor(OP)
    Der gespiegelte ortsvektor des punktes P' ist dann Vektor(OP') = Vektor(OS) + Vektor(v) = 2*Vektor(OS) + Vektor(OP)


Log in to reply