ID2D1Factory::CreateTransformedGeometry-Methoden

Transformiert die angegebene Geometrie und speichert das Ergebnis als ID2D1TransformedGeometry-Objekt .

Überladeliste

Methode BESCHREIBUNG
CreateTransformedGeometry(ID2D1Geometry*,D2D_MATRIX_3X2_F*,ID2D1TransformedGeometry**) Transformiert die angegebene Geometrie und speichert das Ergebnis als ID2D1TransformedGeometry-Objekt .
CreateTransformedGeometry(ID2D1Geometry*,D2D_MATRIX_3X2_F,ID2D1TransformedGeometry&**) Transformiert die angegebene Geometrie und speichert das Ergebnis als ID2D1TransformedGeometry-Objekt .

Bemerkungen

Wie andere Ressourcen erbt eine transformierte Geometrie den Ressourcenbereich und die Threadingrichtlinie der Factory, die sie erstellt hat. Dieses Objekt ist unveränderlich.

Beim Streichen einer transformierten Geometrie mit der DrawGeometry-Methode wird die Strichbreite von der auf die Geometrie angewendeten Transformation nicht beeinflusst. Die Strichbreite wird nur von der Welttransformation beeinflusst.

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
Header
D2d1.h
Bibliothek
D2d1.lib
DLL
D2d1.dll

Siehe auch

ID2D1Factory