次の方法で共有


ID2D1Factory::CreateTransformedGeometry メソッド

指定したジオメトリを変換し、結果を ID2D1TransformedGeometry オブジェクトとして格納します。

オーバーロードの一覧

メソッド 説明
CreateTransformedGeometry(ID2D1Geometry*,D2D_MATRIX_3X2_F*,ID2D1TransformedGeometry**) 指定したジオメトリを変換し、結果を ID2D1TransformedGeometry オブジェクトとして格納します。
CreateTransformedGeometry(ID2D1Geometry*,D2D_MATRIX_3X2_F,ID2D1TransformedGeometry&**) 指定したジオメトリを変換し、結果を ID2D1TransformedGeometry オブジェクトとして格納します。

解説

他のリソースと同様に、変換されたジオメトリは、それを作成したファクトリのリソース領域とスレッド ポリシーを継承します。 このオブジェクトは不変です。

DrawGeometry メソッドを使用して変換されたジオメトリをストロークする場合、ストローク幅はジオメトリに適用される変換の影響を受けません。 ストロークの幅は、ワールド変換の影響を受けるだけです。

次の例では、 ID2D1RectangleGeometry を作成し、変換せずに描画します。 次の図に示す出力が生成されます。

四角形の図

hr = m_pD2DFactory->CreateRectangleGeometry(
    D2D1::RectF(150.f, 150.f, 200.f, 200.f),
    &m_pRectangleGeometry
    );

次の例では、レンダー ターゲットを使用してジオメトリを 3 倍にスケーリングし、描画します。 次の図は、変換なしで、変換を使用して四角形を描画した結果を示しています。では、ストロークの太さが 1 であっても、変換後にストロークが太くなります。

太いストロークを持つ大きな四角形内の小さな四角形の図

// Transform the render target, then draw the rectangle geometry again.
m_pRenderTarget->SetTransform(
    D2D1::Matrix3x2F::Scale(
        D2D1::SizeF(3.f, 3.f),
        D2D1::Point2F(175.f, 175.f))
    );

m_pRenderTarget->DrawGeometry(m_pRectangleGeometry, m_pBlackBrush, 1);

次の例では、 CreateTransformedGeometry メソッドを使用してジオメトリを 3 倍にスケーリングし、描画します。 次の図に示す出力が生成されます。 四角形は大きくなりますが、ストロークは増加していません。

同じストロークを持つ大きな四角形内の小さな四角形の図

 // Create a geometry that is a scaled version
 // of m_pRectangleGeometry.
 // The new geometry is scaled by a factory of 3
 // from the center of the geometry, (35, 35).

 hr = m_pD2DFactory->CreateTransformedGeometry(
     m_pRectangleGeometry,
     D2D1::Matrix3x2F::Scale(
         D2D1::SizeF(3.f, 3.f),
         D2D1::Point2F(175.f, 175.f)),
     &m_pTransformedGeometry
     );


// Replace the previous render target transform.
m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Identity());

// Draw the transformed geometry.
m_pRenderTarget->DrawGeometry(m_pTransformedGeometry, m_pBlackBrush, 1);

要件

要件
ヘッダー
D2d1.h
ライブラリ
D2d1.lib
[DLL]
D2d1.dll

関連項目

ID2D1Factory