Возвращаемый тип HRESULT название GetBounds:
Назначение:
Описывает геометрию квадратом(внешним) или прямоугольником без учёта обводки
Аргументы:
const D2D1_MATRIX_3X2_F* worldTransform - матрица преобразования(может быть nullptr).
D2D1_RECT_F* bounds - результат функции.
Возвращаемый тип HRESULT название GetWidenedBounds:
Назначение:
Описывает геометрию квадратом(внешним) или прямоугольником с учётом обводки
Аргументы:
FLOAT strokeWidth - ширина строки(по умолчанию 1.0F).
ID2D1StrokeStyle* strokeStyle - стиль строки(по умолчанию 0).
const D2D1_MATRIX_3X2_F* worldTransform - матрица преобразования(может быть nullptr).
FLOAT flatteningTolerance - допуск аппроксимации(есть вариант функции без него).
D2D1_RECT_F* bounds - результат функции.
Возвращаемый тип HRESULT название FillContainsPoint:
Назначение:
Проверяет находится ли точка внутри геометрии.
Аргументы:
D2D1_POINT_2F point - координата точки
const D2D1_MATRIX_3X2_F* worldTransform - матрица преобразования(может быть nullptr).
FLOAT flatteningTolerance - допуск аппроксимации(есть вариант функции без него).
BOOL* contains - результат функции.
Возвращаемый тип HRESULT название StrokeContainsPoint:
Назначение:
Проверяет находится ли точка на обводке геометрии.
Аргументы:
D2D1_POINT_2F point - координата точки.
FLOAT strokeWidth - ширина строки.
ID2D1StrokeStyle* strokeStyle - стиль строки.
const D2D1_MATRIX_3X2_F* worldTransform - матрица преобразования(может быть nullptr).
FLOAT flatteningTolerance - допуск аппроксимации(есть вариант функции без него).
BOOL* contains - результат функции.
Возвращаемый тип HRESULT название ComputeArea
Назначение:
Вычисляет площадь фигуры
Аргументы:
const D2D1_MATRIX_3X2_F* worldTransform - матрица преобразования(может быть nullptr).
FLOAT flatteningTolerance - допуск аппроксимации(есть вариант функции без него).
FLOAT* area - результат функции.
Возвращаемый тип HRESULT название ComputeLength
Назначение:
Длина контура фигуры. То есть вот есть вершины фигуры, и проходим от одной к другой, от неё к следующей и так до конца, и вот путь это длина контура фигуры.
Аргументы:
const D2D1_MATRIX_3X2_F* worldTransform - матрица преобразования(может быть nullptr).
FLOAT flatteningTolerance - допуск аппроксимации(есть вариант функции без него).
FLOAT* length - результат функции.
возвращаемый тип HRESULT название ComputePointAtLength
Назначение:
Находит точку на обводке и возвращает её, находит по принципу что мы указываем расстояние мин. значение которого 0 , а макс. значение которое возвращает функция ComputeLength , и функция берёт каждую вершину и строит вектор, и проходит от одного к другому, когда пройдённый путь является тем, что передали в функцию, например 50 , то возвращает точку на обводке и единичный вектор - направление.
Аргументы:
FLOAT length - длина пути, когда вернуть функцию.
const D2D1_MATRIX_3X2_F* worldTransform - матрица преобразования(может быть nullptr).
FLOAT flatteningTolerance - допуск аппроксимации(есть вариант функции без него).
D2D1_POINT_2F* point - вернёт результат функции - координату на обводке.
D2D1_POINT_2F* unitTangentVector - вернёт второй результат функции - единичный вектор - направление. (Может быть nullptr).
возвращаемый тип HRESULT название CompareWithGeometry
Назначение:
Сравнивает и возвращает наличие пересечение между фигурой у которой вызвали функцию, и между той, которую передали в функцию.
Аргументы:
ID2D1Geometry *inputGeometry - геометрия для сравнения
const D2D1_MATRIX_3X2_F* worldTransform - матрица преобразования(может быть nullptr).
FLOAT flatteningTolerance - допуск аппроксимации(есть вариант функции без него).
D2D1_GEOMETRY_RELATION *relation - енум перечисления и результат функции. Варианты:
D2D1_GEOMETRY_RELATION_DISJOINT - фигуры не пересекаются
D2D1_GEOMETRY_RELATION_IS_CONTAINED - фигура у которой вызвали функцию внутри той, которую передали функцию.
D2D1_GEOMETRY_RELATION_CONTAINS - фигура которую передали функцию внутри той у которой вызвали функцию
D2D1_GEOMETRY_RELATION_OVERLAP - фигуры пересекаются
D2D1_GEOMETRY_RELATION_UNKNOWN - ошибка вычисления
возвращаемый тип HRESULT название CombineWithGeometry
Назначение:
Объединяет две фигуры по одному из четырёх правил, создавая единую фигуру-результат.
Аргументы:
ID2D1Geometry *inputGeometry - геометрия для объединения
enum D2D1_COMBINE_MODE - флаг объединения:
D2D1_COMBINE_MODE_UNION 0x0 - Объединение ⬜ + ⬜ = ⬜ . Все точки, принадлежащие хотя бы одной из фигур.
D2D1_COMBINE_MODE_INTERSECT 0x1 - Пересечение ◩ ∩ ◪ = ◨ . Только точки, принадлежащие обеим фигурам одновременно.
D2D1_COMBINE_MODE_XOR 0x2 - Исключающее ИЛИ ◩ ⊕ ◪ = ◩◪ . Точки, принадлежащие только одной фигуре (но не обеим).
D2D1_COMBINE_MODE_EXCLUDE 0x3 - Вычитание ◩ \ ◪ = ◩ . Точки первой фигуры за вычетом области второй фигуры.
D2D1_MATRIX_3X2_F *inputGeometryTransform - матрица преобразования (может быть nullptr).
FLOAT flatteningTolerance - допуск аппро��симации (есть вариант функции без него).
ID2D1SimplifiedGeometrySink *geometrySink - функция вернёт результат например в переданный ID2D1PathGeometry.
возвращаемый тип HRESULT название Simplify
Назначение:
Упрощает геометрию: либо сохраняет только сегменты линий и кривых Безье 3-го порядка, удаляя дуги, либо преобразует все сегменты в линии.
Аргументы:
D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption - флаг-опция:
D2D1_GEOMETRY_SIMPLIFICATION_OPTION_CUBICS_AND_LINES - результат может содержать кубические кривые Безье и отрезки прямых. Все остальные типы сегментов например дуги преобразуются в кубические кривые Безье.
D2D1_GEOMETRY_SIMPLIFICATION_OPTION_LINES: Результирующая геометрия будет содержать только отрезки прямых. Все кривые, включая кубические Безье, аппроксимируются ломаной линией.
D2D1_MATRIX_3X2_F &worldTransform - матрица преобразования (может быть nullptr).
FLOAT flatteningTolerance - допуск аппроксимации (есть вариант функции без него).
ID2D1SimplifiedGeometrySink *geometrySink - функция вернёт результат например в переданный ID2D1PathGeometry.