다음을 통해 공유


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함께 여러 기하 도형 간에 통합을 동시에 만드는 데 유용할 수도 있습니다.

예제

다음 코드에서는 개요를 사용하여 자체 교집합 없이 동등한 기하 도형을 생성하는 방법을 보여 줍니다. 기본 평면화 허용 오차를 사용하므로 매우 작은 기하 도형과 함께 사용하면 안 됩니다.

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