Gibt es in VB.NET 2003 außer der Methode, alle Punkte einzeln zu berechnen, eine einfachere Möglichkeit, ein Rechteck gradweise zu rotieren?

Antwort vom

Ja. In **VB.NET 2003 / GDI+** gibt es eine deutlich einfachere Methode als alle Eckpunkte selbst zu berechnen: **`Graphics.RotateTransform`** zusammen mit **`TranslateTransform`**. Damit rotierst du das komplette Koordinatensystem und zeichnest das Rechteck danach ganz normal. Beispielprinzip: ```vb Dim g As Graphics = Me.CreateGraphics() g.TranslateTransform(cx, cy) ' Drehpunkt g.RotateTransform(winkel) ' Winkel in Grad g.TranslateTransform(-breite / 2, -hoehe / 2) g.DrawRectangle(Pens.Black, 0, 0, breite, hoehe) ``` ### Idee dahinter - erst Ursprung auf den gewünschten **Drehpunkt** verschieben - dann um den Winkel drehen - dann das Rechteck relativ zu diesem Ursprung zeichnen ### Wichtig Nach dem Zeichnen die Transformation wieder zurücksetzen: ```vb g.ResetTransform() ``` ### Alternative Auch möglich ist eine **Transformationsmatrix** über `System.Drawing.Drawing2D.Matrix`, aber für ein einfach rotierendes Rechteck ist `RotateTransform` meist am bequemsten. ### Kurzfazit **Ja:** In VB.NET 2003 ist die einfachste Lösung normalerweise **GDI+-Transformationen** statt Punkt-für-Punkt-Berechnung.

Verwandte Fragen

Wie lässt sich die Neuzeichenzeit eines in VB.NET 2003 gezeichneten Panels mit 6x7 Bildern à 80x60 px verringern?

Um die Neuzeichenzeit in VB.NET 2003 / WinForms für ein Panel mit 42 Bildern à 80×60 px zu verringern, helfen vor allem diese Punkte: 1. Double Buffering verwenden Flackern und un...

Statische und dynamische Unwucht erklärt

Unwucht bedeutet: Die Masse eines rotierenden Körpers ist nicht gleichmäßig um die Drehachse verteilt. 1. Statische Unwucht Die statische Unwucht liegt vor, wenn der Schwerpunkt nicht...

Wie beeinflusse ich in VB.NET 2003 die Z-Order mehrerer Bilder aus einem zweidimensionalen Array?

In VB.NET 2003 steuerst du die Z-Order nicht über das Array, sondern über die Controls auf dem Container (z. B. Form, Panel, PictureBox). Für Bilder gilt: BringToFront() → nach vo...

Wie zeichnet man in VB.NET 2003 eine gepunktete Linie?

In VB.NET 2003 zeichnest du eine gepunktete Linie über Graphics.DrawLine und den Pen.DashStyle. Beispiel: vb Imports System.Drawing.Drawing2D Dim g As Graphics = Me.CreateGraphics() Dim p As N...