Übersetzen eines Objekts

Um ein 2D-Objekt zu übersetzen, müssen Sie das Objekt entlang der x-Achse, der y-Achse oder beides verschieben. Sie können eine der beiden folgenden Methoden aufrufen, um eine Übersetzungstransformation zu erstellen.

  • Translation(D2D1_SIZE_F Size): nimmt ein geordnetes Paar an, das den Abstand definiert, der entlang der x-Achse und der y-Achse übersetzt werden soll.
  • Translation(float x, float y): nimmt den Abstand für die Übersetzung entlang der x-Achse und den Abstand, der entlang der y-Achse übersetzt werden soll.

Der folgende Code erstellt eine Übersetzungstransformationsmatrix, die die quadratischen 20 Einheiten entlang der x-Achse nach rechts und 10 Einheiten entlang der y-Achse nach unten verschiebt.

    // Create a rectangle.
    D2D1_RECT_F rectangle = D2D1::Rect(126.0f, 80.5f, 186.0f, 140.5f);

    // Draw the outline of the rectangle.
    m_pRenderTarget->DrawRectangle(
        rectangle,
        m_pOriginalShapeBrush,
        1.0f,
        m_pStrokeStyleDash
        );

    // Apply the translation transform to the render target.
    m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Translation(20, 10));

    // Paint the interior of the rectangle.
    m_pRenderTarget->FillRectangle(rectangle, m_pFillBrush);

    // Draw the outline of the rectangle.
    m_pRenderTarget->DrawRectangle(rectangle, m_pTransformedShapeBrush);

Die folgende Abbildung zeigt den Effekt des Anwendens der Übersetzungstransformation auf das Quadrat, wobei das ursprüngliche Quadrat ein gepunkteter Umriss und das übersetzte Quadrat eine durchgezogene Kontur ist.

Abbildung eines Quadrats, das 20 Einheiten entlang der x-Achse nach rechts und 10 Einheiten entlang der y-Achse nach unten verschoben wurde

Direct2D-Referenz

Übersicht über Direct2D-Transformationen