Drehen eines Objekts

In diesem Thema wird beschrieben, wie ein Objekt um einen angegebenen Punkt gedreht wird. Um ein Objekt zu rotieren, rufen Sie die Matrix3x2F::Rotation-Methode auf. Diese Methode verwendet zwei Parameter, den angegebenen Winkel und den Mittelpunkt. Der Winkel ist ein Drehwinkel im Uhrzeigersinn in Grad, und der Mittelpunkt ist der Punkt, um den sich das Objekt dreht. Der Mittelpunkt wird im Koordinatensystem des transformierten Objekts ausgedrückt.

Der folgende Code rotiert beispielsweise ein Quadrat im Uhrzeigersinn um 45 Grad um die Mitte des Quadrats.

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

Die folgende Abbildung zeigt den Effekt des Anwendens der vorherigen Drehungstransformation auf das Quadrat. Das ursprüngliche Quadrat ist ein gepunkteter Umriss, und das gedrehte Quadrat ist ein durchgezogener Umriss.

Abbildung eines Quadrats, das im Uhrzeigersinn um 45 Grad um die Mitte des ursprünglichen Quadrats gedreht wird

Die folgende Abbildung zeigt den Effekt der Drehung um denselben Winkel um einen anderen Mittelpunkt. Beachten Sie, dass sich die gedrehten Objekte relativ zum Original an unterschiedlichen Positionen befinden. Das linke umrissene Quadrat ist das Ergebnis einer Drehung um die Mitte des ursprünglichen Quadrats, und das recht umrissene Quadrat ist das Ergebnis einer Drehung um die obere linke Ecke des ursprünglichen Quadrats.

Abbildung eines Quadrats, das im Uhrzeigersinn um 45 Grad gedreht wird, um einen anderen Mittelpunkt

Direct2D-Referenz

Übersicht über Direct2D-Transformationen