Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается, как повернуть объект по заданной точке. Чтобы повернуть объект, вызовите метод Matrix3x2F::Rotation. Этот метод принимает два параметра, указанный угол и центральную точку. Угол — это угол поворота по часовой стрелке в градусах, а центральная точка — точка, о которой вращается объект. Центральная точка выражается в системе координат преобразуемого объекта.
Например, следующий код вращает квадрат на 45 градусов по часовой стрелке вокруг центра квадрата.
// 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);
На следующем рисунке показан эффект от применения предыдущего преобразования вращения к квадрату. Исходный квадрат имеет пунктирный контур, а вращенный квадрат — сплошной контур.
На следующем рисунке показан эффект поворота на один и тот же угол относительно другой центральной точки. Обратите внимание, что объекты после поворота находятся в разных позициях относительно исходного объекта. Левый очерченный квадрат является результатом поворота вокруг центра исходного квадрата, а правый очерченный квадрат — результат поворота вокруг его верхнего левого угла.
Связанные разделы
-
Справочник по Direct2D