Mise à l’échelle d’un objet
Cette rubrique explique comment mettre à l’échelle un objet à l’aide de la classe Matrix3x2F . Mettre à l’échelle un objet signifie agrandir ou réduire l’objet. Vous pouvez appeler l’une des deux méthodes suivantes pour mettre à l’échelle un objet.
- Matrix3x2F::Scale(D2D1_SIZE_F scalefactor, D2D1_POINT_2F centerpoint)
- Matrix3x2F::Scale(float scalex, float scaley, D2D1_POINT_2F centerpoint)
La première méthode stocke scalex et scaley sous la forme d’une paire ordonnée de valeurs à virgule flottante dans la structure D2D1_SIZE_F . La deuxième méthode définit scalex et scaley en tant que paramètres individuels.
Quelle que soit la méthode que vous utilisez, vous devez spécifier des facteurs scalex et scaley . La valeur scalex est le facteur d’échelle dans la direction x. Par exemple, une valeur scalex de 1,5 étire l’objet à 150 % le long de l’axe des X. De même, la valeur de mise à l’échelle est le facteur d’échelle dans le sens y. Par exemple, une valeur de mise à l’échelle de 0,5 réduit la hauteur de l’objet de 50 % le long de l’axe y.
Pour spécifier un point comme centre de l’opération de mise à l’échelle, utilisez le paramètre centerpoint . Par défaut, un objet est centré sur son origine (0,0).
L’exemple de code suivant crée une transformation de mise à l’échelle pour augmenter la taille d’un carré à 130 % de sa taille d’origine. Le point central est défini pour être le coin supérieur gauche du carré d’origine.
// Create a rectangle.
D2D1_RECT_F rectangle = D2D1::Rect(438.0f, 80.5f, 498.0f, 140.5f);
// Draw the outline of the rectangle.
m_pRenderTarget->DrawRectangle(
rectangle,
m_pOriginalShapeBrush,
1.0f,
m_pStrokeStyleDash
);
// Apply the scale transform to the render target.
m_pRenderTarget->SetTransform(
D2D1::Matrix3x2F::Scale(
D2D1::Size(1.3f, 1.3f),
D2D1::Point2F(438.0f, 80.5f))
);
// Paint the rectangle's interior.
m_pRenderTarget->FillRectangle(rectangle, m_pFillBrush);
// Draw the outline of the rectangle.
m_pRenderTarget->DrawRectangle(rectangle, m_pTransformedShapeBrush);
L’illustration suivante montre l’effet de l’application de la transformation d’échelle au carré. Le carré d’origine est un contour en pointillés et le carré mis à l’échelle est un contour uni.
Rubriques connexes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour