Метод ID2D1Brush::SetTransform(constD2D1_MATRIX_3X2_F&) (d2d1.h)
Задает преобразование, примененные к кисти.
Синтаксис
void SetTransform(
[ref] const D2D1_MATRIX_3X2_F & transform
);
Параметры
[ref] transform
Тип: const D2D1_MATRIX_3X2_F
Преобразование, применяемого к этой кисти.
Возвращаемое значение
None
Remarks
При рисовании кистью она закрашивает координатное пространство целевого объекта отрисовки. Кисти не располагаются автоматически в соответствии с закрашенным объектом; По умолчанию они начинают рисование в источнике (0, 0) целевого объекта отрисовки.
Градиент, определенный ID2D1LinearGradientBrush , можно переместить в целевую область, задав начальную и конечную точки. Аналогичным образом можно переместить градиент, определенный id2D1RadialGradientBrush , изменив его центр и радиусы.
Чтобы выровнять содержимое ID2D1BitmapBrush по закрашиваемой области, можно использовать метод SetTransform для преобразования растрового рисунка в нужное расположение. Это преобразование влияет только на кисть; он не влияет на другое содержимое, нарисованное целевым объектом отрисовки.
На следующих рисунках показан эффект использования ID2D1BitmapBrush для заполнения прямоугольника, расположенного в (100, 100). На рисунке слева показан результат заполнения прямоугольника без преобразования кисти: растровое изображение рисуется в источнике целевого объекта отрисовки. В результате в прямоугольнике отображается только часть растрового изображения.
На рисунке справа показан результат преобразования ID2D1BitmapBrush таким образом, чтобы его содержимое сместилось на 50 пикселей вправо и на 50 пикселей вниз. Растровое изображение заполняет прямоугольник.
Примеры
В следующих примерах кода показано, как создать преобразование, показанное на схеме справа на предыдущем рисунке. Сначала примените преобразование к ID2D1BitmapBrush, переместив кисть на 50 пикселей вправо по оси X и на 50 пикселей вниз по оси Y. Затем используйте ID2D1BitmapBrush , чтобы заполнить прямоугольник, который имеет верхний левый угол в (100, 100) и правый нижний угол в (200, 200).
// Create the bitmap to be used by the bitmap brush.
if (SUCCEEDED(hr))
{
hr = LoadResourceBitmap(
m_pRenderTarget,
m_pWICFactory,
L"FERN",
L"Image",
&m_pBitmap
);
}
if (SUCCEEDED(hr))
{
hr = m_pRenderTarget->CreateBitmapBrush(
m_pBitmap,
&m_pBitmapBrush
);
}
D2D1_RECT_F rcTransformedBrushRect = D2D1::RectF(100, 100, 200, 200);
// Demonstrate the effect of transforming a bitmap brush.
m_pBitmapBrush->SetTransform(
D2D1::Matrix3x2F::Translation(D2D1::SizeF(50,50))
);
// To see the content of the rcTransformedBrushRect, comment
// out this statement.
m_pRenderTarget->FillRectangle(
&rcTransformedBrushRect,
m_pBitmapBrush
);
m_pRenderTarget->DrawRectangle(rcTransformedBrushRect, m_pBlackBrush, 1, NULL);
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | 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 |
Библиотека | D2d1.lib |
DLL | D2d1.dll |