Ü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.
Zugehörige Themen