Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Transformacja światowa jest właściwością klasy Graphics. Liczby określające transformację Matrix świata są przechowywane w obiekcie, który reprezentuje macierz 3×3. Klasy Matrix i Graphics mają kilka metod ustawiania liczb w światowej macierzy transformacji.
Różne typy przekształceń
W poniższym przykładzie kod najpierw tworzy prostokąt 50×50 i lokalizuje go w miejscu początkowym (0, 0). Źródło znajduje się w lewym górnym rogu obszaru klienta.
Rectangle rect = new Rectangle(0, 0, 50, 50);
Pen pen = new Pen(Color.FromArgb(128, 200, 0, 200), 2);
e.Graphics.DrawRectangle(pen, rect);
Dim rect As New Rectangle(0, 0, 50, 50)
Dim pen As New Pen(Color.FromArgb(128, 200, 0, 200), 2)
e.Graphics.DrawRectangle(pen, rect)
Poniższy kod stosuje transformację skalowania, która rozszerza prostokąt o współczynnik 1,75 w kierunku x i zmniejsza prostokąt o współczynnik 0,5 w kierunku y:
e.Graphics.ScaleTransform(1.75f, 0.5f);
e.Graphics.DrawRectangle(pen, rect);
e.Graphics.ScaleTransform(1.75F, 0.5F)
e.Graphics.DrawRectangle(pen, rect)
Wynik jest prostokątem dłuższym w kierunku x i krótszym w kierunku y niż oryginalny.
Aby obrócić prostokąt zamiast go skalować, użyj następującego kodu:
e.Graphics.ResetTransform();
e.Graphics.RotateTransform(28); // 28 degrees
e.Graphics.DrawRectangle(pen, rect);
e.Graphics.ResetTransform()
e.Graphics.RotateTransform(28) ' 28 degrees
e.Graphics.DrawRectangle(pen, rect)
Aby przetłumaczyć prostokąt, użyj następującego kodu:
e.Graphics.ResetTransform();
e.Graphics.TranslateTransform(150, 150);
e.Graphics.DrawRectangle(pen, rect);
e.Graphics.ResetTransform()
e.Graphics.TranslateTransform(150, 150)
e.Graphics.DrawRectangle(pen, rect)
Zobacz także
.NET Desktop feedback