Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det här avsnittet beskriver hur du skalar ett objekt med hjälp av klassen Matrix3x2F. Om du vill skala ett objekt innebär det att objektet blir större eller mindre. Du kan anropa någon av följande två metoder för att skala ett objekt.
- Matrix3x2F::Scale(D2D1_SIZE_F scalefactor, D2D1_POINT_2F centerpoint)
- Matrix3x2F::Scale(float scalex, float scaley, D2D1_POINT_2F centrumpunkt)
Den första metoden lagrar scalex och scaley som ett ordnat par flyttalsvärden i D2D1_SIZE_F-strukturen. Den andra metoden definierar scalex och scaley som individuella parametrar.
Oavsett vilken metod du använder måste du ange både scalex och scaley faktorer. Värdet scalex är skalningsfaktorn i x-riktningen. Exempelvis sträcker ett scalex värde av 1,5 objektet till 150 procent längs x-axeln. På samma sätt är skalvärdet skalfaktorn i y-riktningen. Till exempel krymper en skalfaktor värdet 0,5 höjden på objektet med 50 procent längs med y-axeln.
Om du vill ange en punkt som centrum för skalningsåtgärden använder du parametern centerpoint. Som standard centreras ett objekt om dess ursprung (0,0).
Följande exempelkod skapar en skalningstransformering för att öka storleken på en kvadrat till 130% av dess ursprungliga storlek. Mittpunkten ,, ska bli det övre vänstra hörnet av den ursprungliga kvadraten.
// 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);
Följande bild visar effekten av att tillämpa skalningstransformeringen på kvadraten. Den ursprungliga kvadraten är en prickad kontur och den skalade kvadraten är en heldragen kontur.
Relaterade ämnen
-
Översikt över Direct2D-transformationer