ID2D1Geometry::Outline 方法

計算幾何的外框,並將結果寫入ID2D1SimplifiedGeometrySink

多載清單

方法 描述
Outline(D2D1_MATRIX_3X2_F&,ID2D1SimplifiedGeometrySink*) 計算幾何的外框,並將結果寫入ID2D1SimplifiedGeometrySink
Outline(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;
}

需求

需求
程式庫
D2d1.lib
DLL
D2d1.dll

另請參閱

ID2D1Geometry