Como dimensionar um objeto
Este tópico descreve como dimensionar um objeto usando a classe Matrix3x2F . Dimensionar um objeto significa tornar o objeto 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 usado, você deve especificar fatores scalex e scaley . O valor scalex é o fator de escala na direção x. Por exemplo, um valor scalex de 1,5 estende o objeto para 150% ao longo do eixo x. Da mesma forma, o valor scaley é o fator de escala na direção y. Por exemplo, um valor dimensionado de 0,5 reduz a altura do objeto em 50% 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 sobre 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 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 dimensionado é um contorno sólido.
Tópicos relacionados