Como girar um objeto
Este tópico descreve como girar um objeto sobre um ponto especificado. Para girar um objeto, chame o método Matrix3x2F::Rotation . Esse método usa dois parâmetros, o ângulo especificado e o ponto central. O ângulo é um ângulo de rotação no sentido horário em graus e o ponto central é o ponto sobre o qual o objeto gira. O ponto central é expresso no sistema de coordenadas do objeto que é transformado.
Por exemplo, o código a seguir gira um quadrado no sentido horário 45 graus sobre o centro do quadrado.
// Create a rectangle.
D2D1_RECT_F rectangle = D2D1::Rect(438.0f, 301.5f, 498.0f, 361.5f);
// Draw the rectangle.
m_pRenderTarget->DrawRectangle(
rectangle,
m_pOriginalShapeBrush,
1.0f,
m_pStrokeStyleDash
);
// Apply the rotation transform to the render target.
m_pRenderTarget->SetTransform(
D2D1::Matrix3x2F::Rotation(
45.0f,
D2D1::Point2F(468.0f, 331.5f))
);
// Fill the rectangle.
m_pRenderTarget->FillRectangle(rectangle, m_pFillBrush);
// Draw the transformed rectangle.
m_pRenderTarget->DrawRectangle(rectangle, m_pTransformedShapeBrush);
A ilustração a seguir mostra o efeito da aplicação da transformação de rotação anterior ao quadrado. O quadrado original é um contorno pontilhado, e o quadrado girado é um contorno sólido.
A ilustração a seguir mostra o efeito de girar pelo mesmo ângulo sobre um ponto central diferente. Observe que os objetos girados estão em posições diferentes em relação ao original. O quadrado delineado à esquerda é o resultado da rotação sobre o centro do quadrado original, e o quadrado delineado à direita é o resultado da rotação sobre o canto superior esquerdo do quadrado original.
Tópicos relacionados