设置应用于画笔的转换。
重载列表
| 方法 | Description |
|---|---|
| SetTransform(D2D1_MATRIX_3X2_F&) | 设置应用于画笔的转换。 |
| SetTransform(D2D1_MATRIX_3X2_F*) | 设置应用于画笔的转换。 |
注解
使用画笔进行绘制时,它会在呈现目标的坐标空间中绘制。 画笔不会自动定位自身以与所绘制的对象对齐;默认情况下,它们开始绘制呈现目标的原点(0,0)。
可以通过设置其起点和终点来“移动” ID2D1LinearGradientBrush 定义的渐变到目标区域。 同样,可以通过更改其中心和弧度来移动 ID2D1RadialGradientBrush 定义的渐变。
若要将 ID2D1BitmapBrush 的内容与所绘制的区域对齐,可以使用 SetTransform 方法将位图转换为所需位置。 此转换仅影响画笔;它不会影响呈现器目标绘制的任何其他内容。
下图显示了使用 ID2D1BitmapBrush 填充位于 (100, 100) 的矩形的效果。 左图上的插图显示填充矩形而不转换画笔的结果:位图在呈现目标的原点绘制。 因此,矩形中只显示一部分位图。
右侧的插图显示转换 ID2D1BitmapBrush 的结果,以便其内容向右移动 50 像素,向下移动 50 像素。 位图现在填充矩形。
示例
下面的代码示例演示如何创建上图中右图中显示的转换。 首先将翻译应用于 ID2D1BitmapBrush,沿 x 轴向右移动画笔 50 像素,沿 y 轴向下移动 50 像素。 然后使用 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);
Requirements
| 要求 | 价值 |
|---|---|
| Header |
|
| Library |
|
| DLL |
|