Utilizar la transformación de coordenadas universales
Actualización: noviembre 2007
La transformación de coordenadas universales es una propiedad de la clase Graphics. Los números que especifican la transformación de coordenadas universales están almacenados en un objeto Matrix que representa una matriz de 3x3. Las clases Matrix yGraphics tienen varios métodos para establecer los números en la matriz de transformación de coordenadas universales.
Tipos diferente de transformaciones
En el ejemplo siguiente, el código crea primero un rectángulo de 50x50 y lo sitúa en el origen (0, 0). El origen está en la esquina superior izquierda del á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);
El código siguiente aplica una transformación de ajuste de tamaño que expande el rectángulo por un factor de 1,75 en la dirección del eje x y lo encoge por un factor de 0,5 en la dirección del eje 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);
El resultado es un rectángulo que es más largo en la dirección x y más corto en la dirección y que el original.
Para girar el rectángulo en lugar de cambiar su tamaño, use el código siguiente:
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 trasladar el rectángulo, use el código siguiente:
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);