Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tópico descreve como dimensionar um objeto usando a classeMatrix3x2F. Dimensionar um objeto significa torná-lo maior ou menor. Você pode chamar um dos dois métodos a seguir para dimensionar um objeto.
- Matrix3x2F::Scale(D2D1_SIZE_F scalefactor, D2D1_POINT_2F centerpoint)
- Matrix3x2F::Scale(float scalex, float scaley, D2D1_POINT_2F centerpoint)
O primeiro método armazena scalex e scaley como um par ordenado de valores de ponto flutuante na estrutura D2D1_SIZE_F. O segundo método define scalex e scaley como parâmetros individuais.
Independentemente do método que utilize, deve-se especificar tanto o fator de escalonamento em x quanto o fator de escalonamento em y . O valor scalex é o fator de escala na direção do eixo x. Por exemplo, um valor de scalex de 1.5 estende o objeto a 150 por cento ao longo do eixo x. Da mesma forma, o valor escalável é o fator de escala na direção y. Por exemplo, um valor de escala de 0,5 reduz a altura do objeto em 50 por cento ao longo do eixo y.
Para especificar um ponto como o centro da operação de dimensionamento, use o parâmetro centerpoint. Por padrão, um objeto é centralizado em torno de sua origem (0,0).
O código de exemplo a seguir cria uma transformação de escala para aumentar o tamanho de um quadrado para 130% de seu tamanho original. O ponto central está definido como sendo o canto superior esquerdo do quadrado original.
// Create a rectangle.
D2D1_RECT_F rectangle = D2D1::Rect(438.0f, 80.5f, 498.0f, 140.5f);
// Draw the outline of the rectangle.
m_pRenderTarget->DrawRectangle(
rectangle,
m_pOriginalShapeBrush,
1.0f,
m_pStrokeStyleDash
);
// Apply the scale transform to the render target.
m_pRenderTarget->SetTransform(
D2D1::Matrix3x2F::Scale(
D2D1::Size(1.3f, 1.3f),
D2D1::Point2F(438.0f, 80.5f))
);
// Paint the rectangle's interior.
m_pRenderTarget->FillRectangle(rectangle, m_pFillBrush);
// Draw the outline of the rectangle.
m_pRenderTarget->DrawRectangle(rectangle, m_pTransformedShapeBrush);
A ilustração a seguir mostra o efeito da aplicação da transformação de escala ao quadrado. O quadrado original é um contorno pontilhado e o quadrado escalonado é um contorno sólido.
Tópicos relacionados
-
Visão geral das transformações Direct2D