Partager via


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.

Illustration d’un rectangle
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.

Illustration d’un rectangle plus petit à l’intérieur d’un rectangle plus grand avec un trait plus épais
// 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é.

Illustration d’un rectangle plus petit à l’intérieur d’un rectangle plus grand avec le même trait
 // 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

Voir aussi

ID2D1Geometry