Utilisation de la transformation universelle
La transformation mondiale est une propriété de la Graphics classe. Les nombres qui spécifient la transformation mondiale sont stockés dans un Matrix objet, qui représente une matrice 3×3. Les classes et Graphics les Matrix classes ont plusieurs méthodes pour définir les nombres dans la matrice de transformation mondiale.
Différents types de transformations
Dans l’exemple suivant, le code crée d’abord un rectangle 50×50 et le localise à l’origine (0, 0). L’origine se trouve en haut à gauche de la zone cliente.
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)
Le code suivant applique une transformation de mise à l’échelle qui étend le rectangle d’un facteur de 1,75 dans la direction x et réduit le rectangle d’un facteur de 0,5 dans la direction 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)
Le résultat est un rectangle plus long dans la direction x et plus court dans la direction y que l’original.
Pour faire pivoter le rectangle au lieu de le mettre à l’échelle, utilisez le code suivant :
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)
Pour traduire le rectangle, utilisez le code suivant :
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)
Voir aussi
.NET Desktop feedback