ID2D1TransformedGeometry 介面 (d2d1.h)
表示已轉換的幾何。
繼承
ID2D1TransformedGeometry 介面繼承自ID2D1Geometry。 ID2D1TransformedGeometry 也有下列類型的成員:
方法
ID2D1TransformedGeometry 介面具有這些方法。
ID2D1TransformedGeometry::GetSourceGeometry 擷取這個轉換幾何物件的來源幾何。 |
ID2D1TransformedGeometry::GetTransform 擷取用來轉換ID2D1TransformedGeometry物件來源幾何的矩陣。 |
備註
使用 ID2D1TransformedGeometry ,而不是使用轉譯目標的轉換來轉換幾何,可讓您在不轉換幾何筆劃的情況下轉換幾何。
建立 ID2D1TransformedGeometry 物件
若要建立 ID2D1TransformedGeometry,請呼叫 ID2D1Factory::CreateTransformedGeometry 方法。Direct2D 幾何是 ID2D1Factory 所建立的不可變和與裝置無關的資源。 一般而言,您應該建立一次幾何,並在應用程式存留期間保留它們,或直到需要修改它們為止。 如需與裝置無關和裝置相依資源的詳細資訊,請參閱 資源概觀。
範例
下列範例會建立 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);
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Windows Vista 的 Windows 7、Windows Vista SP2 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 R2、Windows Server 2008 SP2 和 Platform Update for Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | d2d1.h |