Поделиться через


Метод ID2D1Factory::CreateGeometryGroup (d2d1.h)

Создает ID2D1GeometryGroup, который является объектом, который содержит другие геометрические объекты.

Синтаксис

HRESULT CreateGeometryGroup(
        D2D1_FILL_MODE     fillMode,
  [in]  ID2D1Geometry      **geometries,
        UINT32             geometriesCount,
  [out] ID2D1GeometryGroup **geometryGroup
);

Параметры

fillMode

Тип: D2D1_FILL_MODE

Значение типа , указывающее правило, которое используется составной фигурой для определения того, является ли данная точка частью геометрии.

[in] geometries

Тип: ID2D1Geometry**

Массив, содержащий объекты geometry для добавления в группу geometry. Количество элементов в этом массиве обозначается параметром geometriesCount .

geometriesCount

Тип: UINT

Количество элементов в геометрических объектах.

[out] geometryGroup

Тип: ID2D1GeometryGroup**

При возврате этого метода содержит адрес указателя на группу геометрии, созданную этим методом.

Возвращаемое значение

Тип: HRESULT

Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Геометрические группы — это удобный способ одновременного объединения нескольких геометрических объектов, поэтому все фигуры нескольких различных геометрических объектов объединяются в одну. Чтобы создать объект ID2D1GeometryGroup , вызовите метод CreateGeometryGroup объекта ID2D1Factory , передав в fillMode возможные значения D2D1_FILL_MODE_ALTERNATE (альтернативные) и D2D1_FILL_MODE_WINDING, массив объектов geometry для добавления в группу geometry и количество элементов в этом массиве.

Примеры

В следующем примере кода сначала объявляется массив объектов geometry. Это четыре концентрических круга со следующими радиусами: 25, 50, 75 и 100. Затем вызовите CreateGeometryGroup для объекта ID2D1Factory , передав D2D1_FILL_MODE_ALTERNATE, массив геометрических объектов для добавления в группу geometry и количество элементов в этом массиве.

ID2D1Geometry *ppGeometries[] =
{
    m_pEllipseGeometry1,
    m_pEllipseGeometry2,
    m_pEllipseGeometry3,
    m_pEllipseGeometry4
};

hr = m_pD2DFactory->CreateGeometryGroup(
    D2D1_FILL_MODE_ALTERNATE,
    ppGeometries,
    ARRAYSIZE(ppGeometries),
    &m_pGeoGroup_AlternateFill
    );

if (SUCCEEDED(hr))
{
    hr = m_pD2DFactory->CreateGeometryGroup(
        D2D1_FILL_MODE_WINDING,
        ppGeometries,
        ARRAYSIZE(ppGeometries),
        &m_pGeoGroup_WindingFill
        );
}

На следующем рисунке показаны результаты отрисовки двух геометрических объектов групп из примера.

Иллюстрация двух наборов из четырех концентрических кругов, один с заполненными вторым и четвертым кольцами и один со всеми заполненными кольцами

Требования

Требование Значение
Минимальная версия клиента Windows 7, Windows Vista с пакетом обновления 2 (SP2) и обновлением платформы для Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2) и Обновление платформы для Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header d2d1.h
Библиотека D2d1.lib
DLL D2d1.dll

См. также раздел

Обзор геометрий

ID2D1Factory