ID2D1TransformedGeometry-Schnittstelle (d2d1.h)

Stellt eine Geometrie dar, die transformiert wurde.

Vererbung

Die ID2D1TransformedGeometry-Schnittstelle erbt von ID2D1Geometry. ID2D1TransformedGeometry verfügt auch über folgende Membertypen:

Methoden

Die ID2D1TransformedGeometry-Schnittstelle verfügt über diese Methoden.

 
ID2D1TransformedGeometry::GetSourceGeometry

Ruft die Quellgeometrie dieses transformierten geometry-Objekts ab.
ID2D1TransformedGeometry::GetTransform

Ruft die Matrix ab, die zum Transformieren der Quellgeometrie des ID2D1TransformedGeometry-Objekts verwendet wird.

Hinweise

Wenn Sie eine ID2D1TransformedGeometry verwenden, anstatt eine Geometrie mithilfe der Transformation eines Renderziels zu transformieren, können Sie eine Geometrie transformieren, ohne ihren Strich zu transformieren.

Erstellen von ID2D1TransformedGeometry-Objekten

Um eine ID2D1TransformedGeometry zu erstellen, rufen Sie die ID2D1Factory::CreateTransformedGeometry-Methode auf .

Direct2D-Geometrien sind unveränderliche und geräteunabhängige Ressourcen, die von ID2D1Factory erstellt werden. Im Allgemeinen sollten Sie Geometrien einmal erstellen und sie für die Lebensdauer der Anwendung oder bis zu ihrer Änderung beibehalten. Weitere Informationen zu geräteunabhängigen und geräteabhängigen Ressourcen finden Sie in der Ressourcenübersicht.

Beispiele

Im folgenden Beispiel wird eine ID2D1RectangleGeometry erstellt und dann ohne Transformation zeichnert. Es erzeugt die in der folgenden Abbildung gezeigte Ausgabe.

Abbildung eines Rechtecks
hr = m_pD2DFactory->CreateRectangleGeometry(
    D2D1::RectF(150.f, 150.f, 200.f, 200.f),
    &m_pRectangleGeometry
    );

Im nächsten Beispiel wird das Renderziel verwendet, um die Geometrie um den Faktor 3 zu skalieren und dann zu zeichnet. Die folgende Abbildung zeigt das Ergebnis des Zeichnens des Rechtecks ohne die Transformation und mit der Transformation. stellt fest, dass der Strich nach der Transformation dicker ist, obwohl die Strichstärke 1 beträgt.

Abbildung eines kleineren Rechtecks in einem größeren Rechteck mit einem dickeren Strich
// Transform the render target, then draw the rectangle geometry again.
m_pRenderTarget->SetTransform(
    D2D1::Matrix3x2F::Scale(
        D2D1::SizeF(3.f, 3.f),
        D2D1::Point2F(175.f, 175.f))
    );

m_pRenderTarget->DrawGeometry(m_pRectangleGeometry, m_pBlackBrush, 1);

Im nächsten Beispiel wird die CreateTransformedGeometry-Methode verwendet, um die Geometrie um den Faktor 3 zu skalieren und dann zu zeichnet. Es erzeugt die in der folgenden Abbildung gezeigte Ausgabe. Beachten Sie, dass, obwohl das Rechteck größer ist, sein Strich nicht erhöht wurde.

Abbildung eines kleineren Rechtecks in einem größeren Rechteck mit dem gleichen Strich
 // Create a geometry that is a scaled version
 // of m_pRectangleGeometry.
 // The new geometry is scaled by a factory of 3
 // from the center of the geometry, (35, 35).

 hr = m_pD2DFactory->CreateTransformedGeometry(
     m_pRectangleGeometry,
     D2D1::Matrix3x2F::Scale(
         D2D1::SizeF(3.f, 3.f),
         D2D1::Point2F(175.f, 175.f)),
     &m_pTransformedGeometry
     );

// Replace the previous render target transform.
m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Identity());

// Draw the transformed geometry.
m_pRenderTarget->DrawGeometry(m_pTransformedGeometry, m_pBlackBrush, 1);

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7, Windows Vista mit SP2 und Plattformupdate für Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2, Windows Server 2008 mit SP2 und Plattformupdate für Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile d2d1.h

Weitere Informationen

ID2D1Geometry