2D Rotation und Translation, kann jemand Helfen?



  • Hallo,

    Ich möchte einige Bildpunkte um eine 'festen Punkt' rotieren- und in Y-Richtung verschieben können.
    Das Rotieren klappt prima, nur das Verschieben klappt nicht so wie ich es mir Vorstelle.
    Entweder verschiebt sich mein 'fester Punkt' mit, oder die Richtung stimmt nicht.

    Arbeite mit einer 3x3-Rotationsmatrix und bin mit meinem mathematischen Wissen am Ende.

    Jede Hilfe wir dankbar angenommen. 🙂

    Gruß chris



  • Bei einer Translation wird jeder Punkt verschoben, es gibt also keinen festen Punkt.
    Zum Rotieren um einen beliebigen Punkt p(x,y) musst du zuerst um (-x,-y) translieren dann die gewünschte drehung durchführen und wieder zurücktranslieren:

    T(x,y)*R(alpha)*T(-x,-y) <= alles 3x3 Matrizen

    Falls dir das nicht helfen sollte, beschreibe deine Probleme bitte genauer ...





  • Danke erst einmal, leider war das auch mein Ansatz, aber....

    Ich denke da an etwas, dass ungefähr so funktioniert wie
    ein Navigationssystem. Ein Fixpunkt am unteren Bildrand
    (Mitte), mit dem Winkel drehe ich die Grafik und über
    eine Verschiebung lasse ich sie nach unten wandern. Naja,
    das wäre jedenfalls schön.

    chris



  • häufige fehlerursache bei sowas sind die unterschiedlichen koordinatensysteme. ich nehme mal an, dass du die maus verwendest. die liefert ihre position meistens zum bezugspunkt "oben links" (0,0) x-achse positiv nach rechts, y-achse positiv nach unten (manchmal aber auch nicht *G) und deine internen koordinaten sind dazu sehr häufig um 90° rotiert (x-achse positiv nach oben, y-achse positiv nach rechts).

    wenn man das nicht berücksichtig, "fühlt" sich so eine steuerung sehr seltsam an 😉


Anmelden zum Antworten