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 Ressourcenraum und die Threadingrichtlinie der Factory, die sie erstellt hat. Dieses Objekt ist unveränderlich.
Beim Zusammenstellen 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
Das folgende Beispiel erstellt eine ID2D1RectangleGeometryund zeichnet sie dann, ohne sie zu transformieren. Sie erzeugt die in der folgenden Abbildung gezeigte Ausgabe.

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 zeichnen. Die folgende Abbildung zeigt das Ergebnis des Zeichnens des Rechtecks ohne die Transformation und mit der Transformation. erkennt, dass der Strich nach der Transformation breiter ist, obwohl die Strichstärke 1 ist.

// 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 zeichnen. Sie erzeugt die in der folgenden Abbildung gezeigte Ausgabe. Beachten Sie, dass das Rechteck zwar größer ist, aber sein Strich nicht erhöht wurde.

// 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);
Requirements (Anforderungen)
| Anforderung | Wert |
|---|---|
| Header |
|
| Bibliothek |
|
| DLL |
|