Интерфейс ID2D1TransformedGeometry (d2d1.h)
Представляет преобразованную геометрию.
Наследование
Интерфейс ID2D1TransformedGeometry наследуется от ID2D1Geometry. ID2D1TransformedGeometry также имеет следующие типы элементов:
Методы
Интерфейс ID2D1TransformedGeometry содержит следующие методы.
ID2D1TransformedGeometry::GetSourceGeometry Извлекает исходную геометрию этого преобразованного объекта geometry. |
ID2D1TransformedGeometry::GetTransform Извлекает матрицу, используемую для преобразования исходной геометрии объекта ID2D1TransformedGeometry. |
Комментарии
Использование ID2D1TransformedGeometry вместо преобразования геометрии с помощью преобразования целевого объекта отрисовки позволяет преобразовать геометрию без преобразования ее росчерка.
Создание объектов ID2D1TransformedGeometry
Чтобы создать ID2D1TransformedGeometry, вызовите метод ID2D1Factory::CreateTransformedGeometry .Геометрические объекты Direct2D — это неизменяемые и независимые от устройств ресурсы, созданные ID2D1Factory. Как правило, геометрические объекты следует создавать один раз и хранить в течение жизненного цикла приложения или до тех пор, пока их не потребуется изменить. Дополнительные сведения о независимых от устройства и зависимых от устройства ресурсах см. в разделе Общие сведения о ресурсах.
Примеры
В следующем примере создается id2D1RectangleGeometry, а затем он рисуется без преобразования. Он создает выходные данные, показанные на следующем рисунке.
hr = m_pD2DFactory->CreateRectangleGeometry(
D2D1::RectF(150.f, 150.f, 200.f, 200.f),
&m_pRectangleGeometry
);
В следующем примере используется целевой объект отрисовки для масштабирования геометрии в 3 раз, а затем рисуется. На следующем рисунке показан результат рисования прямоугольника без преобразования и с преобразованием . замечает, что штрих толще после преобразования, даже если толщина штриха составляет 1.
// Transform the render target, then draw the rectangle geometry again.
m_pRenderTarget->SetTransform(
D2D1::Matrix3x2F::Scale(
D2D1::SizeF(3.f, 3.f),
D2D1::Point2F(175.f, 175.f))
);
m_pRenderTarget->DrawGeometry(m_pRectangleGeometry, m_pBlackBrush, 1);
В следующем примере используется метод CreateTransformedGeometry для масштабирования геометрического объекта в 3 раз, а затем выполняется его рисование. Он создает выходные данные, показанные на следующем рисунке. Обратите внимание, что хотя прямоугольник больше, его росчерк не увеличился.
// Create a geometry that is a scaled version
// of m_pRectangleGeometry.
// The new geometry is scaled by a factory of 3
// from the center of the geometry, (35, 35).
hr = m_pD2DFactory->CreateTransformedGeometry(
m_pRectangleGeometry,
D2D1::Matrix3x2F::Scale(
D2D1::SizeF(3.f, 3.f),
D2D1::Point2F(175.f, 175.f)),
&m_pTransformedGeometry
);
// Replace the previous render target transform.
m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Identity());
// Draw the transformed geometry.
m_pRenderTarget->DrawGeometry(m_pTransformedGeometry, m_pBlackBrush, 1);
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7, Windows Vista с пакетом обновления 2 (SP2) и обновлением платформы для Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2) и Обновление платформы для Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | d2d1.h |