Поделиться через


Преобразование объекта

Преобразование двухсерийного объекта заключается в перемещении объекта вдоль оси X, оси Y или по обеим. Для создания преобразования преобразования можно вызвать один из следующих двух методов.

  • Translation(D2D1_SIZE_F size): принимает упорядоченную пару, определяющую расстояние для преобразования по оси X и оси Y.
  • Translation(float x, float y): принимает расстояние для перевода по оси X и расстояние для перевода по оси Y.

В следующем коде создается матрица преобразования преобразования, которая перемещает квадрат 20 единиц вправо вдоль оси X и 10 единиц вниз по оси Y.

    // 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);

На следующем рисунке показан эффект применения преобразования преобразования к квадрату, где исходный квадрат представляет собой пунктирный контур, а переведенный квадрат — сплошной контур.

Иллюстрация квадрата, перемещенного на 20 единиц вправо вдоль оси X и 10 единиц вниз по оси Y

Справочник по Direct2D

Общие сведения о преобразованиях Direct2D