Come ridimensionare un oggetto
In questo argomento viene descritto come ridimensionare un oggetto usando la classeMatrix3x2F. Per ridimensionare un oggetto significa rendere l'oggetto più grande o più piccolo. È possibile chiamare uno dei due metodi seguenti per ridimensionare un oggetto .
- Matrix3x2F::Scale(D2D1_SIZE_F fattoreDiScala, D2D1_POINT_2F puntoDiCentro)
- Matrix3x2F::Scale(float scalex, float scaley, D2D1_POINT_2F punto_centrale)
Il primo metodo archivia scalex e scaley come coppia ordinata di valori a virgola mobile nella struttura D2D1_SIZE_F. Il secondo metodo definisce scalex e scaley come singoli parametri.
Indipendentemente dal metodo usato, è necessario specificare sia il fattore scalex che il fattore scaley. Il valore scalex è il fattore di scala nella direzione x. Ad esempio, un valore scalex pari a 1,5 estende l'oggetto al 150% lungo l'asse x. Analogamente, il valore di scala è il fattore di scala nella direzione y indicato da. Ad esempio, un valore di scala pari a 0,5 riduce l'altezza dell'oggetto del 50% sull'asse y.
Per specificare un punto come centro dell'operazione di ridimensionamento, usare il parametro centerpoint. Per impostazione predefinita, un oggetto è centrato sull'origine (0,0).
Il codice di esempio seguente crea una trasformazione della scala per aumentare le dimensioni di un quadrato a 130% delle dimensioni originali. Il centerpoint è impostato come angolo superiore sinistro del quadrato originale.
// 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);
La figura seguente mostra l'effetto dell'applicazione della trasformazione della scala al quadrato. Il quadrato originale è un contorno punteggiato e il quadrato ridimensionato è un contorno solido.
Argomenti correlati