Interface ID2D1TransformedGeometry (d2d1.h)
Représente une géométrie qui a été transformée.
Héritage
L’interface ID2D1TransformedGeometry hérite d’ID2D1Geometry. ID2D1TransformedGeometry a également les types de membres suivants :
Méthodes
L’interface ID2D1TransformedGeometry contient ces méthodes.
ID2D1TransformedGeometry ::GetSourceGeometry Récupère la géométrie source de cet objet geometry transformé. |
ID2D1TransformedGeometry ::GetTransform Récupère la matrice utilisée pour transformer la géométrie source de l’objet ID2D1TransformedGeometry. |
Remarques
L’utilisation d’une variable ID2D1TransformedGeometry plutôt que la transformation d’une géométrie à l’aide de la transformation d’une cible de rendu vous permet de transformer une géométrie sans transformer son trait.
Création d’objets ID2D1TransformedGeometry
Pour créer une méthode ID2D1TransformedGeometry, appelez la méthode ID2D1Factory ::CreateTransformedGeometry .Les géométries Direct2D sont des ressources immuables et indépendantes de l’appareil créées par ID2D1Factory. En général, vous devez créer des géométries une seule fois et les conserver pendant toute la durée de l’application, ou jusqu’à ce qu’elles doivent être modifiées. Pour plus d’informations sur les ressources indépendantes de l’appareil et dépendantes de l’appareil, consultez Vue d’ensemble des ressources.
Exemples
L’exemple suivant crée un ID2D1RectangleGeometry, puis le dessine sans le transformer. Il 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 3, puis la dessine. L’illustration suivante montre le résultat du dessin du rectangle sans transformation et avec la transformation ; remarque que le trait est plus épais après la transformation, même si l’épaisseur du trait est 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 dessiner. Il 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);
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 7, Windows Vista avec SP2 et Mise à jour de plateforme pour Windows Vista [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows Server 2008 R2, Windows Server 2008 avec SP2 et Mise à jour de plateforme pour Windows Server 2008 [applications de bureau | Applications UWP] |
Plateforme cible | Windows |
En-tête | d2d1.h |