Usando a transformação global
A transformação do mundo é uma propriedade da classe Graphics . Os números que especificam a transformação world são armazenados em um objeto Matrix , que representa uma matriz de 3 ×3. As classes Matrix e Graphics têm vários métodos para definir os números na matriz de transformação mundial. Os exemplos nesta seção manipulam retângulos porque os retângulos são fáceis de desenhar e é fácil ver os efeitos das transformações em retângulos.
Começamos criando um retângulo 50 por 50 e localizando-o na origem (0, 0). A origem está localizada no canto superior esquerdo da área de cliente.
Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
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:
Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.ScaleTransform(1.75f, 0.5f);
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 em vez do 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 converter o retângulo, use o seguinte código:
Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.TranslateTransform(150.0f, 150.0f);
graphics.DrawRectangle(&pen, rect);