ID2D1Geometry::Outline 方法
计算几何图形的轮廓,并将结果写入 ID2D1SimplifiedGeometrySink。
重载列表
方法 | 说明 |
---|---|
大纲 (D2D1_MATRIX_3X2_F&,ID2D1SimplifiedGeometrySink*) | 计算几何图形的轮廓,并将结果写入 ID2D1SimplifiedGeometrySink。 |
大纲 (D2D1_MATRIX_3X2_F*,ID2D1SimplifiedGeometrySink*) | 计算几何图形的轮廓,并将结果写入 ID2D1SimplifiedGeometrySink。 |
Outline (D2D1_MATRIX_3X2_F&,FLOAT,ID2D1SimplifiedGeometrySink*) | 计算几何图形的轮廓,并将结果写入 ID2D1SimplifiedGeometrySink。 |
Outline (D2D1_MATRIX_3X2_F*,FLOAT,ID2D1SimplifiedGeometrySink*) | 计算几何图形的轮廓,并将结果写入 ID2D1SimplifiedGeometrySink。 |
备注
Outline 方法允许调用方生成与输入几何图形等效填充的几何图形,并具有以下附加属性:
- 输出几何图形不包含横向交集;也就是说,段可能会触摸,但它们永远不会交叉。
- 输出几何图形中最外层的数字都是逆时针方向的。
- 输出几何图形为填充模式固定;也就是说,几何图形的填充不依赖于填充模式的选择。 有关填充模式的详细信息,请参阅 D2D1_FILL_MODE。
此外, Outline 方法可用于删除所述几何图形的冗余部分,以简化复杂的几何图形。 它还可用于与 ID2D1GeometryGroup 结合使用,以同时在多个几何图形之间创建联合。
示例
以下代码演示如何使用 Outline 构造没有自交点的等效几何图形。 它使用默认的平展容差,因此不应与非常小的几何图形一起使用。
HRESULT D2DOutline(
ID2D1Geometry *pGeometry,
ID2D1Geometry **ppGeometry
)
{
HRESULT hr;
ID2D1Factory *pFactory = NULL;
pGeometry->GetFactory(&pFactory);
ID2D1PathGeometry *pPathGeometry = NULL;
hr = pFactory->CreatePathGeometry(&pPathGeometry);
if (SUCCEEDED(hr))
{
ID2D1GeometrySink *pSink = NULL;
hr = pPathGeometry->Open(&pSink);
if (SUCCEEDED(hr))
{
hr = pGeometry->Outline(NULL, pSink);
if (SUCCEEDED(hr))
{
hr = pSink->Close();
if (SUCCEEDED(hr))
{
*ppGeometry = pPathGeometry;
(*ppGeometry)->AddRef();
}
}
pSink->Release();
}
pPathGeometry->Release();
}
pFactory->Release();
return hr;
}
要求
要求 | 值 |
---|---|
库 |
|
DLL |
|