次の方法で共有


LinearGradientBrush::TranslateTransform メソッド (gdiplusbrush.h)

LinearGradientBrush::TranslateTransform メソッドは、このブラシの現在の変換行列をそれ自体と翻訳行列の積で更新します。

構文

Status TranslateTransform(
  [in] REAL        dx,
  [in] REAL        dy,
  [in] MatrixOrder order
);

パラメーター

[in] dx

種類: REAL

変換の水平方向のコンポーネントを指定する実数。

[in] dy

種類: REAL

変換の垂直コンポーネントを指定する実数。

[in] order

型: MatrixOrder

省略可能。 乗算の順序を指定する MatrixOrder 列挙体の要素。 MatrixOrderPrepend は、翻訳行列が左側にあることを指定し、MatrixOrderAppend は翻訳行列が右側にあることを指定します。 既定値は MatrixOrderPrepend です。

戻り値

種類: 状態

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

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

注釈

単一の 3 ×3 行列は、アフィン変換の任意のシーケンスを格納できます。 複数の 3 ×3 個の行列があり、それぞれがアフィン変換を表す場合、それらの行列の積は、変換のシーケンス全体を表す単一の 3 ×3 行列です。 その製品によって表される変換は、複合変換と呼ばれます。 たとえば、行列 S がスケーリングを表し、行列 T が変換を表す場合です。 行列 M が積 ST の場合、行列 M は複合変換 (最初のスケール、次に変換) を表します。

行列乗算の順序は重要です。 一般に、マトリックス積RTはマトリックス積TRと同じではない。 前の段落で指定した例では、RT で表される複合変換 (最初の回転、次に平行移動) は、TR で表される複合変換 (最初の変換、回転) と同じではありません。

次の例では、線形グラデーション ブラシを作成し、それを使用して四角形を塗りつぶします。 次に、コードによってブラシの変換マトリックスが変更され、複合変換が適用され、変換されたブラシで四角形が塗りつぶされます。

VOID Example_TranslateTrans(HDC hdc)
{
   Graphics myGraphics(hdc);

   LinearGradientBrush linGrBrush(
      Rect(0, 0, 80, 40),
      Color(255, 255, 0, 0),  // red
      Color(255, 0, 0, 255),  // blue
      LinearGradientModeHorizontal);

   // Fill a large area with the linear gradient brush (no transformation).
   myGraphics.FillRectangle(&linGrBrush, 0, 0, 800, 150);

   // Apply a composite transformation: first scale, then translate.
   linGrBrush.ScaleTransform(2, 1);                     // horizontal doubling
   linGrBrush.TranslateTransform(30, MatrixOrderAppend);// translation

   // Fill a large area with the transformed linear gradient brush.
   myGraphics.FillRectangle(&linGrBrush, 0, 200, 800, 150);
}

要件

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

こちらもご覧ください

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

グラデーション ブラシを使用した図形の塗りつぶし

LinearGradientBrush

LinearGradientBrush::MultiplyTransform

LinearGradientBrush::ResetTransform

LinearGradientBrush::RotateTransform

LinearGradientBrush::ScaleTransform

マトリックス

変換の行列表現

MatrixOrder

変換