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