ID2D1Factory::CreateTransformedGeometry (ID2D1Geometry*,constD2D1_MATRIX_3X2_F&,ID2D1TransformedGeometry**) 方法 (d2d1.h)
转换指定的几何图形,并将结果存储为 ID2D1TransformedGeometry 对象。
语法
HRESULT CreateTransformedGeometry(
ID2D1Geometry *sourceGeometry,
const D2D1_MATRIX_3X2_F & transform,
ID2D1TransformedGeometry **transformedGeometry
);
参数
sourceGeometry
类型:[in] ID2D1Geometry*
要转换的几何图形。
transform
类型:[in] const D2D1_MATRIX_3X2_F &
要应用的转换。
transformedGeometry
类型:[out] ID2D1TransformedGeometry**
此方法返回时,包含指向新转换的 geometry 对象的指针的地址。 转换后的几何图形存储通过转换转换 sourceGeometry 的结果。
返回值
类型: HRESULT
如果该方法成功,则返回 S_OK。 否则,它将返回 HRESULT 错误代码。
注解
与其他资源一样,转换后的几何图形继承创建它的工厂的资源空间和线程策略。 此对象是不可变的。
使用 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);
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7、带 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2008 R2、Windows Server 2008 SP2 和适用于 Windows Server 2008 的平台更新 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | d2d1.h |
Library | D2d1.lib |
DLL | D2d1.dll |