Как перевести объект
Чтобы перевести 2-D-объект, необходимо переместить объект вдоль оси X, оси Y или обоих. Чтобы создать преобразование перевода, можно вызвать один из следующих двух методов.
- Translation(размер D2D1_SIZE_F) — принимает упорядоченную пару, определяющую расстояние перемещения по оси X и оси Y.
- Трансляция(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);
На следующем рисунке показан эффект применения преобразования перевода к квадрату, где исходный квадрат является пунктирным контуром, а преобразованный квадрат — сплошной контур.
Связанные разделы
-
Справочник по Direct2D