Come ridimensionare un oggetto
In questo argomento viene descritto come ridimensionare un oggetto usando la classe Matrix3x2F . 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 scalefactor, D2D1_POINT_2F centerpoint)
- Matrix3x2F::Scale(float scalex, float scaley, D2D1_POINT_2F centerpoint)
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 scalex che fattori di scala . 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 scaley è il fattore di scala nella direzione y. Ad esempio, un valore scalare pari a 0,5 riduce l'altezza dell'oggetto del 50% lungo l'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 al 130% delle dimensioni originali. Il punto centrale è 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);
Nella figura seguente viene illustrato l'effetto dell'applicazione della trasformazione della scala al quadrato. Il quadrato originale è un contorno punteggiato e il quadrato in scala è un contorno solido.
Argomenti correlati