Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Toto téma popisuje, jak otočit objekt o zadaný bod. Pokud chcete objekt otočit, zavolejte metodu Matrix3x2F::Rotation. Tato metoda přebírá dva parametry, zadaný úhel a středový bod. Úhel je úhel otočení po směru hodinových ručiček ve stupních a středovým bodem je bod, o kterém se objekt otočí. Středový bod je vyjádřen v souřadnicovém systému objektu, který je transformován.
Například následující kód otočí čtverec o 45 stupňů po směru hodinových ručiček kolem středu čtverce.
// Create a rectangle.
D2D1_RECT_F rectangle = D2D1::Rect(438.0f, 301.5f, 498.0f, 361.5f);
// Draw the rectangle.
m_pRenderTarget->DrawRectangle(
rectangle,
m_pOriginalShapeBrush,
1.0f,
m_pStrokeStyleDash
);
// Apply the rotation transform to the render target.
m_pRenderTarget->SetTransform(
D2D1::Matrix3x2F::Rotation(
45.0f,
D2D1::Point2F(468.0f, 331.5f))
);
// Fill the rectangle.
m_pRenderTarget->FillRectangle(rectangle, m_pFillBrush);
// Draw the transformed rectangle.
m_pRenderTarget->DrawRectangle(rectangle, m_pTransformedShapeBrush);
Následující obrázek znázorňuje dopad aplikace předchozí rotace na čtverec. Původní čtverec je tečkovaný obrys a otočený čtverec je plný obrys.
Následující obrázek znázorňuje efekt otáčení stejným úhlem o jiný středový bod. Všimněte si, že otočené objekty jsou v různých pozicích vzhledem k původnímu objektu. Levý obrysový čtverec je výsledkem otočení o střed původního čtverce a pravý obrysový čtverec je výsledkem otočení o levý horní roh původního čtverce.
Související témata
-
Referenční Direct2D
-
Přehled Direct2D transformací