Matrix3x2F クラス

3x2 の行列を表し、行列を作成するための便利なメソッドを提供します。

構文

class Matrix3x2F : D2D1_MATRIX_3X2_F
{
};

メンバー

Matrix3x2F クラス の継承元は次のとおりです: D2D1_MATRIX_3X2_F. Matrix3x2F は次のメンバーも定義します:

  • メソッド

メソッド

Matrix3x2F クラス は次の項目を定義します: メソッド.

メソッド 説明
Matrix3x2F() Constructor

Matrix3x2F クラスの新しいインスタンスを作成します。

Matrix3x2F(FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT) Constructor

指定された値を含む Matrix3x2F クラスの新しいインスタンスを作成します。

Determinant

行列の行列式を計算します。

Identity

単位行列を作成します。

Invert

反転可能な場合は、行列を反転させます。

IsIdentity

この行列が単位行列かどうかを示します。

IsInvertible

行列が反転可能かどうかを示します。

operator*

この行列を指定された行列で乗算して、結果を返します。

ReinterpretBaseType(const *D2D1_MATRIX_3X2_F )

コピーを作成せずに、指定された D2D1_MATRIX_3X2_F 行列を Matrix3x2F に変換します。

ReinterpretBaseType(*D2D1_MATRIX_3X2_F)

コピーを作成せずに、指定された D2D1_MATRIX_3X2_F 行列を Matrix3x2F に変換します。

Rotation

指定した角度と中心点を持つ回転変換を作成します。

Scale(D2D1_SIZE_F,D2D1_POINT_2F)

指定した拡大/縮小率と中心点を持つ拡大縮小変換を作成します。

Scale(FLOAT,FLOAT,D2D1_POINT_2F)

指定した拡大/縮小率と中心点を持つ拡大縮小変換を作成します。

SetProduct

2 つの行列を乗算して、その結果をこの行列に格納します。

Skew

指定した X 軸値、Y 軸値、および中心点を持つ傾斜変換を作成します。

TransformPoint

この行列を使用して、指定された点を変換して結果を返します。

Translation(D2D1_SIZE_F)

指定した X 変位と Y 変位を持つ移動変換を作成します。

Translation(FLOAT,FLOAT)

指定した X 変位と Y 変位を持つ移動変換を作成します。

 

解説

Matrix3x2F クラスには、変換行列を作成するための静的メソッドが多数用意されています。次の表に、使用頻度の高いメソッドと、そのメソッドに関連した操作手順に関するトピックを示します。

メソッド 操作手順に関するトピック
Skew オブジェクトを傾斜させる方法
Rotation オブジェクトを回転する方法
Scale オブジェクトを拡大/縮小する方法
Translation オブジェクトを移動する方法

 

変換は、複数のオブジェクトまたは描画サーフェイス全体に適用できます。変換を描画サーフェイス全体に適用するには、ID2D1RenderTarget::SetTransform メソッドを呼び出します。ブラシやジオメトリなどの個々のオブジェクトに適用する場合は、ID2D1Brush::SetTransform メソッドまたは ID2D1Geometry メソッドを呼び出します。

次の例では、D2D1::Matrix3x2F::Rotation メソッドを使用して、四角形をその中心を軸に時計回りに 45°回転する回転行列を作成し、その行列をレンダー ターゲット (m_pRenderTarget) の SetTransform メソッドに渡します。

次の図は、前の回転変換を四角形に適用した結果を示しています。元の四角形は点線で、回転後の四角形は実線で描画されています。

 

四角形の中心を軸に時計回りに 45°回転された四角形の図

 

      // Create a rectangle.
    D2D1_RECT_F rectangle = D2D1::Rect(438.0f, 301.5f, 498.0f, 361.5f);

    // Draw the rectangle.
    m_pRenderTarget->DrawRectangle(
        rectangle,
        m_pOriginalShapeBrush,
        1.0f,
        m_pStrokeStyleDash
        );

    // Apply the rotation transform to the render target.
    m_pRenderTarget->SetTransform(
        D2D1::Matrix3x2F::Rotation(
            45.0f,
            D2D1::Point2F(468.0f, 331.5f))
        );

    // Fill the rectangle.
    m_pRenderTarget->FillRectangle(rectangle, m_pFillBrush);

    // Draw the transformed rectangle.
    m_pRenderTarget->DrawRectangle(rectangle, m_pTransformedShapeBrush);

この例では、コードが省略されています。完全な例については、「単一の変換の例」を参照してください。変換の詳細については、「変換の概要」を参照してください。

要件

クライアントの最小要件

Windows 7, Windows Vista SP2 および Windows Vista 用のプラットフォーム更新プログラム

サーバーの最小要件

Windows Server 2008 R2, Windows Server 2008 SP2 および Windows Server 2008 用のプラットフォーム更新プログラム

ヘッダー

D2d1.h

ライブラリ

D2d1.lib

DLL

D2d1.dll

参照

変換の概要

単一の変換の例