Методы ID2D1Factory::CreateTransformedGeometry
Преобразует указанную геометрию и сохраняет результат в виде объекта ID2D1TransformedGeometry.
Список перегрузки
Метод | Description |
---|---|
CreateTransformedGeometry(ID2D1Geometry*,D2D_MATRIX_3X2_F*,ID2D1TransformedGeometry**) | Преобразует указанную геометрию и сохраняет результат в виде объекта ID2D1TransformedGeometry. |
CreateTransformedGeometry(ID2D1Geometry*,D2D_MATRIX_3X2_F&;ID2D1TransformedGeometry**) | Преобразует указанную геометрию и сохраняет результат в виде объекта ID2D1TransformedGeometry. |
Замечания
Как и другие ресурсы, преобразованная геометрия наследует пространство ресурсов и политику потоков фабрики, которая ее создала. Этот объект неизменяем.
При постреке преобразованной геометрии с помощью метода DrawGeometry ширина штриха не влияет на преобразование, примененное к геометрии. Ширина штриха влияет только на преобразование мира.
Примеры
В следующем примере создается идентификатор 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);
Requirements
Требование | Значение |
---|---|
Верхний колонтитул |
|
Библиотека |
|
DLL-библиотеки |
|