Partager via


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.

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 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.

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 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é.

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);

Spécifications

Condition requise Valeur
En-tête
D2d1.h
Bibliothèque
D2d1.lib
DLL
D2d1.dll

Voir aussi

ID2D1Factory