[Code] Polygon drehen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von MasterJulian, 3. November 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 3. November 2009
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    Polygon drehen

    Vorweg: Es geht mir hier nicht um einen spezielle Sprache, sondern um die Mathematische Umsetzung!
    Ich möchte ne Art "Kompass" programmieren. Hier soll die "Nadel" dynamisch verändert werden und zwar durch die Angabe eines Winkels. Ich hab das Ganze mal skizziert:
    [​IMG]
    Bei 180° würde die Nadel dann auf den Boden zeigen. Drehpunkt ist also M/A. Da man das Dreieck schön in zwei rechtwinklige Dreiecke aufteilen kann, habe ich eins grau gefärbt. Es dreht sich hier nur um das schwarze (Punkt B spiegeln kann ich selber). Doch irgendwie stehe ich gerade Mathematisch total auf dem Schlauch. Per Google habe ich das hier gefunden. Ist im Prinzip das gleiche Problem doch ich hab wohl mal wieder irgendwo nen denk-technischen Knoten drin (ist heut nicht mein Tag). Wäre nett, wenn mir das jemand erläutern könnte.
     

  2. Anzeige
    Heute: Deals & Sale mit stark reduzierten Angeboten finden.
  3. #2 4. November 2009
  4. #3 4. November 2009
    AW: Polygon drehen

    Der Rotationspunkt sollte immer im Ursprung also 0,0 liegen. Was du genau brauchst sind homogene Matrixen, also Matrixenberechnungen.

    Code:
     ( cos(a) -sin(a) 0 0 )
     ( sind(a) cos(a) 0 0 )
    R = ( 0 0 1 0 )
     ( 0 0 0 1 )
    
    Matrix (Mathematik) – Wikipedia

    Du müsstest deine Punkt folgendermaßen berechnen:

    Code:
     ( cos(a) -sin(a) 0 0 ) ( x )
     ( sind(a) cos(a) 0 0 ) ( y )
    R = ( 0 0 1 0 ) ( 1 )
     ( 0 0 0 1 ) ( 1 )
    

    daraus ergibt sich folgende Formel:

    x = cos(a) * x - sin(a) * y
    y = sind(a) * x + cos(a) * y


    Beispiel:
    P = 1, 2
    R = 90°

    x = cos(90) * 1 - sin(90) * 2 = 0 - 2 = -2
    y = sind(90) * 1 + cos(90) * 2 = 1 + 0 = 1

    Punkt nach Rotation = -2, 1

    (Rotiert wurde um den Nullpunkt!)

    Ich hoffe es stimmt alles wie ich es geschrieben habe. Könnte sich auch ein leichtsinnsfehler eingeschlichen haben. Einfach mal testen.

    Gruß
     
  5. #4 4. November 2009
    AW: Polygon drehen

    Eigentlich wollte ich den Weg über die Drehmatrix vermeiden aber so geht natürlich
    Danke wollknoll aber die Formel steht so auch schon in Wikipedia. Da ich das ganze Vektoriell drehe, ist es egal wo der Ursprung liegt.

    ~Close~
     

  6. Videos zum Thema
Die Seite wird geladen...
Similar Threads - Code Polygon drehen
  1. Antworten:
    0
    Aufrufe:
    4.068
  2. Antworten:
    6
    Aufrufe:
    8.110
  3. Antworten:
    1
    Aufrufe:
    1.512
  4. Antworten:
    2
    Aufrufe:
    5.266
  5. Antworten:
    0
    Aufrufe:
    1.056