次の方法で共有


PathGradientBrush::SetTransform メソッド (gdipluspath.h)

PathGradientBrush::SetTransform メソッドは、このパス グラデーション ブラシの変換行列を設定します。

構文

Status SetTransform(
  [in] const Matrix *matrix
);

パラメーター

[in] matrix

型: const Matrix*

変換行列を指定する Matrix オブジェクトへのポインター。

戻り値

種類: 状態

メソッドが成功した場合は、Status 列挙の要素である Ok を返します

メソッドが失敗した場合は、 Status 列挙体の他の要素のいずれかを返します。

注釈

PathGradientBrush オブジェクトには、ブラシの境界パスとして機能する GraphicsPath オブジェクトがあります。 パス グラデーション ブラシを使用してペイントすると、境界パス内の領域のみが塗りつぶされます。 ブラシの変換行列が ID 以外の変換を表すに設定されている場合、レンダリング中にその行列に従って境界パスが変換され、変換されたパス内の領域のみが塗りつぶされます。

変換は、レンダリング中にのみ適用されます。 PathGradientBrush オブジェクトによって格納される境界パスは、PathGradientBrush::SetTransform メソッドによって変更されません。

次の例では、三角形のパスに基づいて PathGradientBrush オブジェクトを作成します。 Graphics::FillRectangle メソッドは、パス グラデーション ブラシを使用して、三角形のパスを含む四角形を描画します。 次に、複合変換 (回転、変換) を表す Matrix オブジェクトを作成し、その Matrix オブジェクトのアドレスを PathGradientBrush オブジェクトの PathGradientBrush::SetTransform メソッドに渡します。 このコードは FillRectangle を 2 回目呼び出し、変換されたパス グラデーション ブラシを使用して同じ四角形を描画します。

VOID Example_SetTransform(HDC hdc)
{
   Graphics graphics(hdc);

   Point pts[] = {
      Point(0, 0), 
      Point(100, 0), 
      Point(100, 100)};

   Color cols[] = {
      Color(255, 255, 0, 0),  // red
      Color(255, 0, 255, 0),  // green
      Color(255, 0, 0, 0)};   // black

   INT count = 3;
   PathGradientBrush pthGrBrush(pts, 3);
   pthGrBrush.SetSurroundColors(cols, &count);

   // Fill an area with the path gradient brush (no transformation).
   graphics.FillRectangle(&pthGrBrush, 0, 0, 200, 200);

   // Set the transformation for the brush (rotate, then translate).
   Matrix matrix(0.0f, 1.0f, -1.0f, 0.0f, 150.0f, 60.0f);
   pthGrBrush.SetTransform(&matrix);
   
   // Fill the same area with the transformed path gradient brush.
   graphics.FillRectangle(&pthGrBrush, 0, 0, 200, 200);  
}

要件

要件
サポートされている最小のクライアント Windows XP、Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー gdipluspath.h (Gdiplus.h を含む)
Library Gdiplus.lib
[DLL] Gdiplus.dll

こちらもご覧ください

ブラシと図形の塗りつぶし

パス グラデーションの作成

色のグラデーションで図形を塗りつぶす

Graphicspath

PathGradientBrush

PathGradientBrush::GetTransform

PathGradientBrush::MultiplyTransform

PathGradientBrush::ResetTransform

PathGradientBrush::RotateTransform

PathGradientBrush::ScaleTransform

PathGradientBrush::TranslateTransform