Compartir a través de


Utilizar la transformación de coordenadas universales

La transformación del mundo es una propiedad de la clase Graphics . Los números que especifican la transformación del mundo 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 del mundo. Los ejemplos de esta sección manipulan rectángulos porque los rectángulos son fáciles de dibujar y es fácil ver los efectos de las transformaciones en los rectángulos.

Comenzamos creando un rectángulo de 50 a 50 y lo localizamos en el origen (0, 0). El origen se encuentra en la esquina superior izquierda del área cliente.

Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
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:

Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.ScaleTransform(1.75f, 0.5f);
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 en lugar del código anterior:

Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.RotateTransform(28.0f);
graphics.DrawRectangle(&pen, rect);

Para trasladar el rectángulo, use el código siguiente:

Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.TranslateTransform(150.0f, 150.0f);
graphics.DrawRectangle(&pen, rect);