ID2D1Geometry::Outline 方法
計算幾何的外框,並將結果寫入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 |
|