ブラシに適用される変換を設定します。
オーバーロード リスト
| Method | 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);
必要条件
| Requirement | 価値 |
|---|---|
| ヘッダ |
|
| Library |
|
| DLL |
|