Поделиться через


Метод 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

См. также раздел

Обзор кистей

ID2D1Brush