schräges Rechteck mit GDI zeichnen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von markus.obi.

    schräges Rechteck mit GDI zeichnen

    Hallo

    ich habe mal wieder ein Problem:
    ich habe eine Rechtecksbreite und -länge.
    jetzt möchte ich ein Rechteck mit diesen Maßen zeichnen, das um den Mittelpunkt um z.B. 20° gedreht ist.
    Gibt es da einen bestimmten Befehl, oder muss ich mir das mit sinus,... herleiten und Striche zeichnen. (würde ich schaffen -> bitte keine Anleitungen dazu)
    Dann wäre das Rechteck aber nicht ausgefüllt. Gibt es einen einfacheren Weg?

    EDIT:
    wie berechnet man den sinus mit VB 2010

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „phil“ ()

    Hallo,
    es gibt zwei Möglichkeiten:

    1) Du kannst die Matrix des Rechtecks ändern (Damit kannst du z.B. auch Bilder rotieren)

    2) Du kannst die 4 Punkte mit Sin, Cos und Tan errechnen und diese dann mit 'DrawPolygone' oder 'FillPolygone' zeichnen oder füllen.

    Gruß, Jan

    phil schrieb:

    wie berechnet man den sinus mit VB 2010

    VB.NET-Quellcode

    1. Dim w As Double = Math.Sin(Math.Pi / 180 * Winkel_in_Grad)
    -----
    Vielleicht kannst Du mal was zu Deinem Problem sagen, da können wir Dir besser helfen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke Markus!

    die Seite werde ich mir notieren.


    zum letzten Beitrag: (ich kann nicht mehr antworten)
    Mit diesen Schwierigkeiten habe ich bereits gekämpft - und gesiegt ;)
    Man kann den Befehl "RotateAt" benutzen.
    |
    |
    V

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „phil“ ()

    Du musst da aufpassen, weil mit Graphics.Transform = ... die gesamte Zeichenebene rotiert wird. Außerdem muss man schauen, dass man um den Mittelpunkt des Rechtecks rotiert.
    Mir fällt grad keine einfachere Methode ein, als das Rechteck erst in das Zentrum des Koordinatensystems zu verschieben und dann erst zu rotieren (geht wahrscheinlich auch einfacher).
    Wichtig ist, dass Matrizen für Transformationen sorgen und, dass bei mehreren Transformationen die Transformationsmatrizen einfach multipliziert werden.
    Die Reihenfolge spielt dabei eine Rolle.