Compartir a través de


Utilizar la transformación de coordenadas universales

La transformación global es una propiedad de la clase Graphics. Los números que especifican la transformación global se almacenan en un objeto Matrix, que representa una matriz de 3 × 3. Las clases Matrix y Graphics tienen varios métodos para establecer los números en la matriz de transformación global.

Diferentes tipos de transformaciones

En el ejemplo siguiente, el código crea primero un rectángulo de 50 × 50 y lo ubica en el origen (0, 0). El origen se encuentra en la esquina superior izquierda del área 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)

El código siguiente aplica una transformación de escalado que expande el rectángulo por un factor de 1,75 en la dirección x y reduce el rectángulo por un factor de 0,5 en la dirección 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)

Como resultado, se obtiene 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 escalarlo, 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)

Consulte también