Delen via


Hoe een object te draaien

In dit onderwerp wordt beschreven hoe u een object over een opgegeven punt draait. Als u een object wilt draaien, roept u Matrix3x2F::Rotation methode aan. Deze methode gebruikt twee parameters, de opgegeven hoek en het middelpunt. De hoek is een draaihoek met de klok mee in graden en het middelpunt is het punt waarover het object draait. Het middelpunt wordt uitgedrukt in het coördinatensysteem van het object dat is getransformeerd.

Met de volgende code wordt bijvoorbeeld een vierkant kloksgewijs 45 graden rond het midden van het vierkant gedraaid.

    // 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);

In de volgende afbeelding ziet u het effect van het toepassen van de voorgaande rotatietransformatie op het vierkant. Het oorspronkelijke vierkant heeft een gestippelde omtrek en het gedraaide vierkant heeft een doorlopende omtrek.

illustratie van een vierkant dat 45 graden met de klok mee is gedraaid om het midden van het oorspronkelijke vierkant

In de volgende afbeelding ziet u het effect van draaien met dezelfde hoek over een ander middelpunt. U ziet dat de gedraaide objecten zich in verschillende posities bevinden ten opzichte van het origineel. Het links omlijnde vierkant is het resultaat van draaien over het midden van het oorspronkelijke vierkant en het rechts omlijnde vierkant is het resultaat van draaien over de linkerbovenhoek van het oorspronkelijke vierkant.

illustratie van een vierkant dat 45 graden met de klok mee is gedraaid rond een ander middelpunt

Direct2D-verwijzing

Overzicht van Direct2D-transformaties