Come ruotare un oggetto
Questo argomento descrive come ruotare un oggetto su un punto specificato. Per ruotare un oggetto, chiamare il metodo Matrix3x2F::Rotation . Questo metodo accetta due parametri, l'angolo specificato e il punto centrale. L'angolo è un angolo di rotazione in senso orario in gradi e il punto centrale è il punto su cui ruota l'oggetto. Il punto centrale è espresso nel sistema di coordinate dell'oggetto trasformato.
Ad esempio, il codice seguente ruota un quadrato a 45 gradi circa il centro del quadrato.
// 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);
La figura seguente mostra l'effetto dell'applicazione della trasformazione di rotazione precedente al quadrato. Il quadrato originale è un contorno punteggiato e il quadrato ruotato è un contorno solido.
La figura seguente mostra l'effetto della rotazione dello stesso angolo circa un punto centrale diverso. Si noti che gli oggetti ruotati si trovano in posizioni diverse rispetto all'originale. Il quadrato descritto a sinistra è il risultato della rotazione sul centro del quadrato originale e il quadrato descritto a destra è il risultato della rotazione sull'angolo superiore sinistro del quadrato originale.
Argomenti correlati