Usando transformação global
transformação global é uma propriedade do Graphics classe. Os números que especificar transformação global são armazenados em um Matrix objeto que representa uma matriz 3 × 3. The Matrix e Graphics classes têm vários métodos para definir os números da matriz de transformação global.
Diferentes tipos de transformações
No exemplo a seguir, o código primeiro cria um retângulo 50 x 50 e ele localiza na origem (0, 0).A origem fica no canto superior esquerdo da área de cliente.
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)
Rectangle rect = new Rectangle(0, 0, 50, 50);
Pen pen = new Pen(Color.FromArgb(128, 200, 0, 200), 2);
e.Graphics.DrawRectangle(pen, rect);
O código a seguir aplica uma transformação de dimensionamento que expande o retângulo em um fator de 1,75 na direção x e reduz o retângulo em um fator de 0,5 na direção 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);
O resultado é um retângulo é maior na direção x e menor na direção y que o original.
Para girar o retângulo, em vez de dimensioná-lo, use o seguinte código:
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);
Para traduzir o retângulo, use o seguinte código:
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);