C #, rotierende Grafik?

8

Ich habe diesen Code, der ein Bild zeichnet.

%Vor%

Was mache ich noch, um es zu drehen?

Danke!

    
Rob 02.03.2011, 20:17
quelle

5 Antworten

22
%Vor%     
jenson-button-event 02.03.2011, 20:20
quelle
7

Es gibt Überladungen von Graphics.DrawImage , die ein Array von drei Punkten benötigen, um ein Parallelogramm für das Ziel zu definieren, wie zum Beispiel:

  

Graphics.DrawImage-Methode (Image, Point [])

     

Bemerkungen

     

Der Parameter destPoints gibt an   drei Punkte eines Parallelogramms. Das   Drei Punktstrukturen repräsentieren die   oben links, oben rechts und   unteren linken Ecken der   Parallelogramm. Der vierte Punkt ist   extrapoliert von den ersten drei bis   ein Parallelogramm bilden.

     

Das Bild, das durch das Bild dargestellt wird   Der Parameter wird skaliert und zugeschnitten   die Form des Parallelogramms   spezifiziert durch die destPoints   Parameter.

Es gibt auch einen Artikel auf MSDN, der die Verwendung dieser Methode beschreibt: Gewusst wie: Drehen, Reflektieren, und Skew Images mit dem folgenden Codebeispiel. Leider verkompliziert das Beispiel das Problem, indem es auch das Bild verzerrt.

%Vor%

Die Hauptunterschiede zur Verwendung der Eigenschaft Graphics.Transform sind:

  • Mit dieser Methode können Sie den Rotationswinkel nicht in Grad angeben. Sie müssen eine einfache Trigonometrie verwenden, um die Punkte abzuleiten.
  • Diese Umwandlung gilt nur für das spezifische Bild.
    • Gut, wenn Sie nur ein gedrehtes Bild zeichnen müssen und alles andere nicht gedreht ist, da Sie Graphics.Transform danach nicht mehr zurücksetzen müssen.
    • Schlecht, wenn Sie mehrere Dinge zusammen drehen möchten (d. h. die "Kamera" drehen).
Justin 02.03.2011 20:35
quelle
2

Verwenden Sie Graphics.RotateTransform , um das Bild zu drehen.

%Vor%     
Oded 02.03.2011 20:19
quelle
0

Sie müssen eine Transformationsmatrix anwenden. Hier finden Sie ein gutes Beispiel für Transformationen in GDI +

    
Disposer 02.03.2011 20:21
quelle
0

Version ohne Clipping:

%Vor%

Primäre Quelle

    
Pavel Samoylenko 10.02.2018 20:30
quelle

Tags und Links