MÉTHODES ID2D1Factory::CreateTransformedGeometry
Transforme la géométrie spécifiée et stocke le résultat sous la forme d’un objet ID2D1TransformedGeometry .
Liste de surcharge
Méthode | Description |
---|---|
CreateTransformedGeometry(ID2D1Geometry*,D2D_MATRIX_3X2_F*,ID2D1TransformedGeometry**) | Transforme la géométrie spécifiée et stocke le résultat sous la forme d’un objet ID2D1TransformedGeometry . |
CreateTransformedGeometry(ID2D1Geometry*,D2D_MATRIX_3X2_F,ID2D1TransformedGeometry&**) | Transforme la géométrie spécifiée et stocke le résultat sous la forme d’un objet ID2D1TransformedGeometry . |
Notes
Comme d’autres ressources, une géométrie transformée hérite de l’espace de ressources et de la stratégie de thread de la fabrique qui l’a créée. Cet objet est immuable.
Lorsque vous caressez une géométrie transformée avec la méthode DrawGeometry , la largeur du trait n’est pas affectée par la transformation appliquée à la géométrie. La largeur du trait est affectée uniquement par la transformation du monde.
Exemples
L’exemple suivant crée un ID2D1RectangleGeometry, puis le dessine sans le transformer. Elle produit la sortie illustrée dans l’illustration suivante.
hr = m_pD2DFactory->CreateRectangleGeometry(
D2D1::RectF(150.f, 150.f, 200.f, 200.f),
&m_pRectangleGeometry
);
L’exemple suivant utilise la cible de rendu pour mettre à l’échelle la géométrie d’un facteur de 3, puis la dessine. L’illustration suivante montre le résultat du dessin du rectangle sans la transformation et avec la transformation ; remarque que le trait est plus épais après la transformation, même si l’épaisseur du trait est de 1.
// 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);
L’exemple suivant utilise la méthode CreateTransformedGeometry pour mettre à l’échelle la géométrie d’un facteur 3, puis la dessine. Elle produit la sortie illustrée dans l’illustration suivante. Notez que, bien que le rectangle soit plus grand, son trait n’a pas augmenté.
// 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);
Spécifications
Condition requise | Valeur |
---|---|
En-tête |
|
Bibliothèque |
|
DLL |
|