Megosztás a következőn keresztül:


Objektum fordítása

A kétdimenziós objektumok lefordításához az objektumot az x tengely, az y tengely vagy mindkettő mentén kell mozgatni. A fordítási átalakítás létrehozásához az alábbi két módszer egyikét hívhatja meg.

  • translation(D2D1_SIZE_F size): egy rendezett párot használ, amely meghatározza az x tengely és az y tengely mentén történő fordításhoz szükséges távolságot.
  • Translation(float x, float y): az x tengely mentén a fordításhoz szükséges távolságot és az y tengely mentén fordítandó távolságot veszi igénybe.

Az alábbi kód létrehoz egy fordítási átalakítási mátrixot, amely a négyzet 20 egységét jobbra helyezi az x tengely mentén, 10 egységet pedig lefelé az y tengely mentén.

    // Create a rectangle.
    D2D1_RECT_F rectangle = D2D1::Rect(126.0f, 80.5f, 186.0f, 140.5f);

    // Draw the outline of the rectangle.
    m_pRenderTarget->DrawRectangle(
        rectangle,
        m_pOriginalShapeBrush,
        1.0f,
        m_pStrokeStyleDash
        );

    // Apply the translation transform to the render target.
    m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Translation(20, 10));

    // Paint the interior of the rectangle.
    m_pRenderTarget->FillRectangle(rectangle, m_pFillBrush);

    // Draw the outline of the rectangle.
    m_pRenderTarget->DrawRectangle(rectangle, m_pTransformedShapeBrush);

Az alábbi ábra a fordítási átalakítás négyzetre való alkalmazásának hatását mutatja be, ahol az eredeti négyzet pontozott körvonal, a lefordított négyzet pedig egy szilárd körvonal.

ábra egy négyzetről, amely 20 egységet mozdul jobbra az x tengely mentén és 10 egységet lefelé az y tengelyen

Direct2D-referencia

Direct2D-átalakítások áttekintése