ID2D1Brush::SetTransform メソッド

ブラシに適用される変換を設定します。

オーバーロード リスト

Method Description
SetTransform(D2D1_MATRIX_3X2_F>) ブラシに適用される変換を設定します。
SetTransform(D2D1_MATRIX_3X2_F*) ブラシに適用される変換を設定します。

注釈

ブラシでペイントすると、レンダー ターゲットの座標空間にペイントされます。 ブラシは、描画されるオブジェクトに合わせて自動的に配置されません。既定では、レンダー ターゲットの原点 (0, 0) で描画を開始します。

ID2D1LinearGradientBrush で定義されたグラデーションをターゲット領域に "移動" するには、始点と終点を設定します。 同様に、 ID2D1RadialGradientBrush で定義されているグラデーションを中心と半径を変更して移動できます。

ID2D1BitmapBrush のコンテンツを塗りつぶす領域に合わせて配置するには、SetTransform メソッドを使用してビットマップを目的の場所に変換します。 この変換はブラシにのみ影響します。レンダー ターゲットによって描画される他のコンテンツには影響しません。

次の図は、 ID2D1BitmapBrush を使用して (100, 100) にある四角形を塗りつぶす効果を示しています。 左側の図は、ブラシを変換せずに四角形を塗りつぶした結果を示しています。ビットマップはレンダー ターゲットの原点に描画されます。 その結果、ビットマップの一部のみが四角形に表示されます。

右側の図は、 ID2D1BitmapBrush を変換して、コンテンツが 50 ピクセル右に、50 ピクセル下にシフトされるようにした結果を示しています。 ビットマップが四角形を塗りつぶすようになりました。

2 つの四角形の図。1 つは変換されたブラシなしでビットマップで塗られ、1 つは変換されたブラシで描画されます

例示

次のコード例は、前の図の右側の図に示す変換を作成する方法を示しています。 まず 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 価値
ヘッダ
D2d1_1.h (D2d1.h を含む)
Library
D2d1.lib
DLL
D2d1.dll

こちらも参照ください

ブラシの概要

ID2D1Brush