Usando a transformação global
A transformação do mundo é uma propriedade da Graphics classe. Os números que especificam a transformação do mundo são armazenados em um Matrix objeto, que representa uma matriz 3×3. As Matrix classes e Graphics têm vários métodos para definir os números na matriz de transformação do mundo.
Tipos diferentes de transformações
No exemplo a seguir, o code first cria um retângulo de 50×50 e o localiza na origem (0, 0). A origem está localizada no canto superior esquerdo da área de 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)
O código a seguir aplica uma transformação de escala que expande o retângulo por um fator de 1,75 na direção x e encolhe o retângulo por 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 que é 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 converter 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)
Confira também
.NET Desktop feedback