## Контрольные точки геометрических объектов Среди геометрических типов, поддерживаемых решателем (см. параграф [Типы поддерживаемой геометрии](./Supported_Geometry_Types.md)) особенное место занимает **точка**. Во-первых, точка самый элементарный геометрический объект. Во-вторых, через точки, называемые *контрольными*, выражаются все остальные типы геометрии. Например, окружность выражается структурой \, где С -- точка центра, R -- скаляр, числовое значение радиуса. В-третьих, контрольные точки могут самостоятельно участвовать в ограничениях, в качестве их аргументов. Например, можно задавать ограничения, как для самой окружности, так и отдельно для её точки, скажем, расстояние от центра окружности до прямой, см. рис. 1. ```{figure} ../../pictures/S.1.11.1.png :width: 15cm :align: center Рис. 1 ``` *С* -- контрольная точка центра *T* -- касание окружности и прямой *D* -- расстояние от центра до прямой Чтобы работать с контрольной точкой, как с самостоятельной точкой, необходимо запросить её дескриптор у геометрического объекта с помощью функции: ```cpp geom_item GCE_PointOf(GCE_system gSys, geom_item g, point_type pnt). ``` Результатом функции является дескриптор контрольной точки геометрического объекта **g**, принадлежащего системе ограничений **gSys**. Параметр **pnt** определяет какая контрольная точка объекта запрашивается и принимает одно из следующих значений: - GCE_FIRST_END -- начальная точка кривой (первый конец); - GCE_SECOND_END -- конечная точка кривой (второй конец); - GCE_CENTRE -- центр окружности, эллипса, а также их дуги (bounded curve); - GCE_Q1 -- квадрантная точка эллипса (3 часа); - GCE_Q2 -- квадрантная точка эллипса (12 часов); - GCE_Q3 -- квадрантная точка эллипса (6 часов); - GCE_Q4 -- квадрантная точка эллипса (9 часов). Запросить контрольные точки сплайновой кривой позволяет метод ```cpp geom_item GCE_SplinePoint(GCE_system gSys, geom_item spl, size_t pntIdx). ``` Функция вернет дескриптор контрольной точки сплайна **spl**, взятой по номеру **pntIdx**, принимающий значения от 0 до N-1, где N -- число контрольных точек сплайна. На рис. 2 изображен сплайн, имеющий N = 7 контрольных точек (красные кружки), с нумерацией от 0. ```{figure} ../../pictures/S.1.11.2.png :width: 15cm :align: center Рис. 2 ```