ID2D1Brush::SetTransform(constD2D1_MATRIX_3X2_F&) メソッド (d2d1.h)

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

構文

void SetTransform(
  [ref] const D2D1_MATRIX_3X2_F & transform
);

パラメーター

[ref] transform

型: const 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);

要件

要件
サポートされている最小のクライアント Windows 7、Windows Vista SP2 および Windows Vista 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 R2、Windows Server 2008 SP2 および Windows Server 2008 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー d2d1.h
Library D2d1.lib
[DLL] D2d1.dll

こちらもご覧ください

ブラシの概要

ID2D1Brush